📄 repawninput.pas
字号:
begin
if selectedField.IsNull then
selDiscountRate:=100
else
selDiscountRate:=selectedField.AsFloat;
selDiscountRate:=selDiscountRate/100 ;
with dmPawnFrm do
begin
tblDetailTempPawnMoney.Value:=selDiscountRate
*tblDetailTempAppriseValue.value;
end;
end;
if selectedField.FieldName='AppriseValue' then
begin
selAppriseValue:=selectedField.AsFloat;
with dmPawnFrm do
begin
if tblDetailTempDiscountRate.Value=0 then
DiscountRate:=100
else
DiscountRate:=tblDetailTempDiscountRate.Value;
tblDetailTempPawnMoney.Value :=selAppriseValue
*(DiscountRate/100);
end;
end;
end;
end;}
procedure TfrmRePawnInput.txtMonthRateKeyDown(Sender: TObject;
var Key: Word; Shift: TShiftState);
//var
//MonthR:Double;
begin
{if txtMonthRate.Text='' then
MonthR:=0
else
MonthR:=strtofloat(txtMonthRate.text); }
if key=VK_RETURN then
begin
//txtRate.Text:=Format('%8.1f',[TimeLimit*TotalPawnMoney*
// MonthR/100]);
//txtFeeRate.SetFocus ;
txtMonthRateExit(Sender);
cmdSave.SetFocus;
end;
end;
procedure TfrmRePawnInput.txtFeeRateKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
var
FeeRate:Double;
ServiceFee,RealPayMoney:Double;
begin
if key=VK_RETURN then
begin
{if txtFeeRate.text='' then
FeeRate:=0
else
FeeRate:=strtofloat(txtFeeRate.text);
ServiceFee:=(FeeRate/100)*TimeLimit*TotalPawnMoney;
RealPayMoney:=TotalPawnMoney-ServiceFee;
txtServiceFee.Text :=format('%8.1f',[ServiceFee]);
txtRealPayMoney.Text :=format('%8.1f',[RealPayMoney]);}
txtFeeRateExit(Sender);
cmdSave.SetFocus ;
end;
end;
procedure TfrmRePawnInput.txtTotalPawnMoneyKeyDown(Sender: TObject;
var Key: Word; Shift: TShiftState);
begin
if key=VK_RETURN then
txtServiceFee.SetFocus ;
end;
procedure TfrmRePawnInput.txtServiceFeeKeyDown(Sender: TObject;
var Key: Word; Shift: TShiftState);
begin
if key=VK_RETURN then
txtRealPayMoney.SetFocus ;
end;
procedure TfrmRePawnInput.txtRealPayMoneyKeyDown(Sender: TObject;
var Key: Word; Shift: TShiftState);
begin
if key=VK_RETURN then
cmdSave.SetFocus ;
end;
//保存数据入库
procedure TfrmRePawnInput.cmdSaveClick(Sender: TObject);
var
PawnBeginDate:TDateTime;
PawnEndDate:TDateTime;
Present: TDateTime;
Year, Month, Day: Word;
frmPay:TfrmPay;
Rkey:word;
NewCode:string;
InputDate:TDateTime;
QuerySql:string;
Limit:integer; //计算典当期限
DayWuCha:integer; //选择的典当期限与输入的典当日期的时间间隔的误差
DayObject:TDayClass; //自定义的类 in GlobalVar
BeginMonth:integer;
BeginDay:integer;
begin
Rkey:=VK_RETURN;
//判断续当的当票编号是否可用
if txtPawnCode.text=''then
begin
messagedlg(Msg.MsgPawnCodeInput,mtWarning,[mbYes],0);
txtPawnCode.SetFocus ;
exit;
end
else
begin
//判断续当的终到日期不为空,如为空则退出保存
if (txtPawnEndYear.Text='')or
(txtPawnEndMonth.Text='')or
(txtPawnEndDay.Text='') then
begin
messagedlg(Msg.MsgDateInfo,mtWarning,[mbYes],0);
exit;
end;
with dmPawnFrm do
begin
tblHead.Open;
tblHead.IndexFieldNames:='PawnTicketCode';
tblHead.SetKey ;
tblHead.FieldByName('PawnTicketCode').AsString:=trim(txtPawnCode.text);
if tblHead.GotoKey then
begin
//ClearForm;
messagedlg(Msg.MsgPawnCodeExist,mtInformation,[mbYes],0);
txtPawnCode.SetFocus ;
tblHead.Close;
exit;
end;
end;
end;
//比较选择的典当期限与输入的典当日期的时间间隔是否误差太大
//计算典当的期限
//取出此月的天数
DayObject:=TDayClass.Create;
BeginMonth:=txtPawnBeginMonth.Value; //txtSysMonth.Value; //strtoint(txtPawnBeginMonth.Text);
BeginDay:=txtPawnBeginDay.Value; //txtSysDay.Value;
Limit:=txtPawnEndYear.Value-txtPawnBeginYear.Value;
Limit:=(Limit*12)+(txtPawnEndMonth.Value-txtPawnBeginMonth.Value);
Limit:=Limit*DayObject.GetDays(BeginMonth,BeginDay)+1+((txtPawnEndDay.Value-txtPawnBeginDay.Value));
DayWuCha:=Limit-Round(TimeLimit*DayObject.GetDays(BeginMonth,BeginDay));
//释放对象
DayObject.Free;
if (DayWuCha>=5) or (DayWuCha<0) then
begin
messagedlg(Msg.MsgInputDateError,mtWarning,[mbYes],0);
exit;
end;
//---------------
//判断是否赎回
while Ransom.RansomMark=False do
begin
if messagedlg(Msg.MsgPreNoRansom,mtInformation,[mbYes,mbNo],0)=mrYes then
begin
frmRansom:=TfrmRansom.Create(nil);
frmRansom.txtPawnCode.Text:=trim(txtRePawnCode.text);
frmRansom.txtPawnCodeKeyDown(Sender,Rkey,[]);
frmRansom.ShowModal;
frmRansom.Free;
end
else
begin
//若未赎回,则显示原当数据信息并提示保存不成功且退出保存
//再从细表查询此当票编号中取出当物信息放入当物栏中
QuerySql:='select PawnLineNum,PawnName,PawnCategory,PawnSpec,PawnNumber,';
QuerySql:=QuerySql+'AppriseValue,DiscountRate,PawnMoney from PawnDetail_Tbl ';
QuerySql:=QuerySql+ 'where PawnTicketCode=:PawnCode ';
QuerySql:=QuerySql+ ' and Status=''''';
with dmPawnFrm do
begin
dqDetailUn.Close;
dqDetailUn.Sql.Clear;
dqDetailUn.Sql.Add(QuerySql);
dqDetailUn.ParamByName('PawnCode').asstring:=trim(txtRepawnCode.text);
//dqDetail.Prepare ;
dqDetailUn.Open;
end;
self.staRepawn.Caption:=Msg.StatusMsgSaveFailure;
exit;
//Break;
end;
end;
//else
//begin
if Ransom.RansomMark=True then
begin
Ransom.RansomMark:=False;
//frmRansom.txtPawnCode.Text:=trim(txtRePawnCode.Text);
self.staRepawn.Caption:=Msg.StatusMsgBuy ;
end;
//Ransom.RansomMark:=False;
//end;
frmPay:=TfrmPay.Create (nil);
with frmPay do
begin
//lbMonthRate.Caption:=format('%8.2f',[MonthRate]);
//lbBuyMoney.Caption :=format('%8.2f',[BuyMoney]);
//lbTimeOutService.Caption :=format('%8.2f',[TimeOutServiceMoney]);
//lbTotalPay.Caption :=format('%8.2f',[MonthRate+BuyMoney+TimeOutServiceMoney]);
lbPawnMoney.Caption :=format('%8.1f',[TotalPawnMoney]);
lbServiceFee.Caption :=trim(txtServiceFee.text);
lbRealPayMoney.Caption :=trim(txtRealPayMoney.text);
ShowModal ;
Free;
end;
if Pay.SaveMark=True then
begin
//当票产生日期
InputDate:=EncodeDate(txtSysYear.Value,txtSysMonth.Value,txtSysDay.Value);
//将这些费用写入数据表PawnMoney_Tbl用于打印
with dmPawnFrm do
begin
tblPawnMoney.Open;
tblPawnMoney.IndexFieldNames:='PawnTicketCode';
tblPawnMoney.SetKey;
tblPawnMoney.FieldByName('PawnTicketCode').asstring:=txtPawnCode.Text;
if tblPawnMoney.GotoKey then
begin
tblPawnMoney.Edit;
end
else
begin
tblPawnMoney.Append;
tblPawnMoneyPawnTicketCode.Value:=trim(self.txtPawnCode.Text);
end;
tblPawnMoneyTotalMoney.Value:=format('%8.1f',[TotalPawnMoney]);
tblPawnMoneyServiceMoney.Value:=trim(txtServiceFee.text);
tblPawnMoneyRealpayMoney.Value:=trim(txtRealPayMoney.text);
tblPawnMoneyPawnDate.Value:=InputDate;
tblPawnMoney.Post;
tblPawnMoney.Close;
end;
with dmPawnFrm do
begin
//将头表中原当的状态设为赎回
tblHead.Open;
tblHead.GotoBookmark(BookMark);
tblHead.Edit;
tblHeadStatus.Value :='赎回';
tblHead.Post ;
//将此当票编号在库存表中删除
tblStockpile.Open;
tblStockpile.IndexFieldNames:='PawnCode';
tblStockpile.SetKey ;
tblStockpile.FieldByName('PawnCode').asstring:=tblHeadPawnTicketCode.Value ;
if tblStockpile.GotoKey then
tblStockpile.Delete;
//将书签释放
tblHead.FreeBookmark (BookMark);
//再将续当的头信息和细信息存入头表和细表
//先将客户信息存入头表
Present:= Now;
DecodeDate(Present, Year, Month, Day);
//取出典当的起始与终到日期的字符串
if txtPawnBeginYear.Text =''then
txtPawnBeginYear.Value:=Year;
if txtPawnBeginMonth.Text =''then
txtPawnBeginMonth.Value:=Month;
if txtPawnBeginDay.Text =''then
txtPawnBeginDay.Value:=Day;
if txtPawnEndYear.Text =''then
txtPawnEndYear.Value:=Year;
if txtPawnEndMonth.Text =''then
txtPawnEndMonth.Value:=Month;
if txtPawnEndDay.Text =''then
txtPawnEndDay.Value:=Day;
PawnBeginDate:=EncodeDate(txtPawnBeginYear.Value,txtPawnBeginMonth.Value,
txtPawnBeginDay.Value);
//PawnBeginDate:=trim(txtPawnBeginYear.Text )+'-'+trim(txtPawnBeginMonth.Text)
// +'-'+trim(txtPawnBeginDay.Text );
PawnEndDate:=EncodeDate(txtPawnEndYear.Value,
txtPawnEndMonth.Value,
txtPawnEndDay.Value);
//PawnEndDate:=trim(txtPawnEndYear.Text)+'-'+trim(txtPawnEndMonth.Text)
// +'-'+trim(txtPawnEndDay.Text);
//将此当票编号存入库存数据表中
staRepawn.Caption :=Msg.StatusMsgSaveIn;//显示正在保存状态
tblStockpile.Append;
tblStockpilePawnCode.Value:=trim(txtPawnCode.text);
tblStockpile.Post;
//添加此续当客户信息入头表且要插入到历史记录头表中
PawnInput.gPawnTicketCode:=trim(txtPawnCode.text);
tblHead.Insert;
tblHeadHistory.Open;
tblHeadHistory.Append;
if gHeadInsertMark=False then //判断头表中是否有此新当票编号
begin
messagedlg(Msg.MsgPawnCodeExist,mtWarning,[mbYes],0);
tblHeadHistory.Close;
exit;
end;
tblHeadPrePawnTicketCode.Value:=trim(txtRePawnCode.text);
tblHeadHistoryPrePawnTicketCode.Value:=tblHeadPrePawnTicketCode.Value;
tblHeadPawnTicketCode.Value :=trim(txtPawnCode.text);
tblHeadHistoryPawnTicketCode.Value:=tblHeadPawnTicketCode.Value;
tblHeadPawnerName.Value :=trim(txtName.Text );
tblHeadHistoryPawnerName.Value:=tblHeadPawnerName.Value;
tblHeadPawnerAddress.Value :=trim(txtAddress.Text);
tblHeadHistoryPawnerAddress.Value:=tblHeadPawnerAddress.Value;
tblHeadPostCode.Value :=trim(txtZip.Text );
tblHeadHistoryPostCode.Value:=tblHeadPostCode.Value;
tblHeadCertificateName.Value :=trim(txtCerName.Text);
tblHeadHistoryCertificateName.Value:=tblHeadCertificateName.Value;
tblHeadCertificateCode.Value :=trim(txtCerCode.Text);
tblHeadHistoryCertificateCode.Value:=tblHeadCertificateCode.Value;
tblHeadTelephoneCode.Value :=trim(txtPhone.Text);
tblHeadHistoryTelephoneCode.Value:=tblHeadTelephoneCode.Value;
tblHeadLinkman.Value :=trim(txtLinkman.Text);
tblHeadHistoryLinkman.Value:=tblHeadLinkman.Value;
if txtMonthRate.Text =''then
txtMonthRate.Text :='0';
tblHeadMonthRate.Value :=StrToFloat(trim(txtMonthRate.Text ));
tblHeadHistoryMonthRate.Value:=tblHeadMonthRate.Value;
if txtRate.Text='' then
txtRate.Text:='0';
tblHeadMonthRateFee.Value:=strtofloat(txtRate.Text);
tblHeadHistoryMonthRateFee.Value:=tblHeadMonthRateFee.Value;
if txtFeeRate.Text='' then
txtFeeRate.Text :='0';
tblHeadFeeRate.Value :=StrToFloat(trim(txtFeeRate.Text));
tblHeadHistoryFeeRate.Value:=tblHeadFeeRate.Value;
if txtTotalPawnMoney.Text ='' then
txtTotalPawnMoney.Text :='0';
//TempText:=trim(txtTotalPawnMoney.text);
//delete(TempText,1,1);
tblHeadTotalPawnMoney.Value :=StrToFloat(trim(txtTotalPawnMoney.text));
tblHeadHistoryTotalPawnMoney.Value:=tblHeadTotalPawnMoney.Value;
if txtServiceFee.Text ='' then
txtServiceFee.Text :='0';
tblHeadSynthesizeFee.Value :=StrToFloat(trim(txtServiceFee.Text));
tblHeadHistorySynthesizeFee.Value:=tblHeadSynthesizeFee.Value;
if txtRealPayMoney.Text='' then
txtRealPayMoney.Text:='0';
tblHeadRealPayMoney.Value :=StrToFloat(trim(txtRealPayMoney.Text));
tblHeadHistoryRealPayMoney.Value:=tblHeadRealPayMoney.Value;
tblHeadPawnBeginDate.Value :=PawnBeginDate;
tblHeadHistoryPawnBeginDate.Value :=PawnBeginDate;
tblHeadPawnEndDate.Value :=PawnEndDate;
tblHeadHistoryPawnEndDate.Value :=PawnEndDate;
tblHeadCreateDate.Value :=InputDate;
tblHeadHistoryCreateDate.Value :=InputDate;
tblHeadHistoryModifyDateTime.Value:=Now;
tblHeadStatus.Value :='未赎';
tblHeadHistoryStatus.Value:=tblHeadStatus.Value;
tblHeadOperatorCode.Value :=Login.gWorkNo;
tblHeadHistoryOperatorCode.Value:=tblHeadOperatorCode.Value;
tblHead.Post;
tblHeadHistory.Post;
tblHeadHistory.Close;
//再将当物信息存入细表并且存入历史细表
dqDetailUn.Open;
tblDetail.Open;
tblDetailHistory.Open;
//dqDetailUn.DisableControls ;
try //begin try...finally
dqDetailUn.First;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -