⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 repawninput.pas

📁 一个典当行的业务管理系统程序
💻 PAS
📖 第 1 页 / 共 4 页
字号:
          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 + -