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

📄 sal_enter_salecontract.pas

📁 一个MRPII系统源代码版本
💻 PAS
📖 第 1 页 / 共 3 页
字号:
                +''''+FloatToStr(AdoQry_Body.fieldbyname('StArtQty').AsFloat)+''','
                +''''+FloatToStr(AdoQry_Body.fieldbyname('endQty').AsFloat)+''','
                +''''+FloatToStr(AdoQry_Body.fieldbyname('NoTaxPrice').AsFloat)+''','
                +''''+FloatToStr(AdoQry_Body.fieldbyname('TaxPrice').AsFloat)+''','
                +''''+FloatToStr(AdoQry_Body.fieldbyname('ReferencedPrice').AsFloat)+''','
                +AdoQry_Body.fieldbyname('LineStatus').AsString+','
                +''''+AdoQry_Body.fieldbyname('SlcLineRemArk').AsString+''','
                +''''+AdoQry_Body.fieldbyname('Lastoperationtime').AsString+''','
                +'0)';
        AdoQry_Tmp.Close;
        AdoQry_Tmp.SQL.Text:=SqlText;
        AdoQry_Tmp.ExecSQL;
        saveSalContractLineHistory(Dbconnect,SlcNo,AdoQry_Body.fieldbyname('SlcLineNo').AsInteger,userCode,0);
        AdoQry_Body.Next;
      end;
    end
    else
    begin
    begin
      for  I:=0  to strinGlist.Count-1 do
      begin
        AdoQry_Tmp.Connection := Dbconnect;
        sqltext:=' Select * from  sa_SaleContractLine where slcno+convert(varchAr,slclineno)='''+strinGlist.Strings[i]+'''';
        AdoQry_Tmp.Close;
        AdoQry_Tmp.SQL.Text:=SqlText;
        AdoQry_Tmp.open;
        if not AdoQry_Tmp.Eof then
          saveSalContractLineHistory(DbConnect,AdoQry_tmp.fieldbyname('slcno').asstring,AdoQry_tmp.fieldbyname('SlcLineNo').AsInteger,userCode,2);
        sqltext:=' Delete sa_SaleContractLine where slcno+convert(varchAr,slclineno)='''+strinGlist.Strings[i]+'''';
        AdoQry_Tmp.Close;
        AdoQry_Tmp.SQL.Text:=SqlText;
        AdoQry_Tmp.ExecSQL;

      end;
      strinGlist.clear;
      SqlText:='Update Sa_SaleContract '
              +' Set  CurrencyCode='''+Trim(Edt_CurrencyCode.Text)+''','
              +' SlcDate= '''+Trim(MEdt_SlcDate.Text)+''','
              +' RemArk= '''+Trim(Edt_RemArk.Text)+''','
              +' EditDate= '''+Formatdatetime('yyyy.mm.dd',Date())+''','
              +' EdItEmployeeCode= '''+UserCode+''','
              +' TaxRate_Percent= '''+Trim(Edt_TaxRate_Percent.Text)+''''
              +' Where SlcNo='''+SlcNo+'''';
      AdoQry_Tmp.Close;
      AdoQry_Tmp.SQL.Text:=SqlText;
      AdoQry_Tmp.ExecSQL;
      saveSalContractHistory(DbConnect,SlcNo,userCode,1);
      AdoQry_Body.First;
      While Not AdoQry_Body.Eof Do
      begin
        If AdoQry_Body.fieldbyname('CheckFlag').AsInteger=1 then
        SqlText:='Insert Sa_SaleContractLine '
                +' (SlcNo,SlcLineNo,ItemCode,StArtDate,endDate,StArtQty,endQty,'
                +' NoTaxPrice,TaxPrice,ReferencedPrice,Linestatus,'
                +' SlcLineRemArk,Lastoperationtime,CheckFlag)'
                +'Values('
                +''''+SlcNo+''','
                +''''+IntToStr(AdoQry_Body.fieldbyname('SlcLineNo').AsInteger)+''','
                +''''+AdoQry_Body.fieldbyname('ItemCode').AsString+''','
                +''''+DatetimeToStr(AdoQry_Body.fieldbyname('StArtDate').AsDateTime)+''','
                +''''+DatetimeToStr(AdoQry_Body.fieldbyname('endDate').AsDateTime)+''','
                +''''+FloatToStr(AdoQry_Body.fieldbyname('StArtQty').AsFloat)+''','
                +''''+FloatToStr(AdoQry_Body.fieldbyname('endQty').AsFloat)+''','
                +''''+FloatToStr(AdoQry_Body.fieldbyname('NoTaxPrice').AsFloat)+''','
                +''''+FloatToStr(AdoQry_Body.fieldbyname('TaxPrice').AsFloat)+''','
                +''''+FloatToStr(AdoQry_Body.fieldbyname('ReferencedPrice').AsFloat)+''','
                +AdoQry_Body.fieldbyname('LineStatus').AsString+','
                +''''+AdoQry_Body.fieldbyname('SlcLineRemArk').AsString+''','
                +''''+AdoQry_Body.fieldbyname('Lastoperationtime').AsString+''','
                +'0)'
        else 
        SqlText:=' UpDate Sa_SaleContractLine '
                  +' Set  ItemCode='+''''+AdoQry_Body.fieldbyname('ItemCode').AsString+''''+','
                  +' StArtDate='+''''+DateTimeToStr(AdoQry_Body.fieldbyname('StArtDate').AsDateTime)+''''+','
                  +' endDate='''+DateTimeToStr(AdoQry_Body.fieldbyname('endDate').AsDateTime)+''''+','
                  +' StArtQty='+''''+FloatToStr(AdoQry_Body.fieldbyname('StArtQty').AsFloat)+''''+','
                  +' endQty='+''''+FloatToStr(AdoQry_Body.fieldbyname('endQty').AsFloat)+''''+','
                  +' NoTaxPrice='+''''+FloatToStr(AdoQry_Body.fieldbyname('NoTaxPrice').AsFloat)+''''+','
                  +' TaxPrice='+''''+FloatToStr(AdoQry_Body.fieldbyname('TaxPrice').AsFloat)+''''+','
                  +' ReferencedPrice='+''''+FloatToStr(AdoQry_Body.fieldbyname('ReferencedPrice').AsFloat)+''''+','
                  +' CheckFlag='+''''+AdoQry_Body.fieldbyname('Linestatus').AssTring+''''+','
                  +' SlcLineRemArk='''+AdoQry_Body.fieldbyname('SlcLineRemArk').AsString+''''
                  +' Where SlcNo='+''''+AdoQry_Body.fieldbyname('SlcNo').AsString+''''
                  +' And SlcLineNo='+''''+AdoQry_Body.fieldbyname('SlcLineNo').AsString+'''';
          AdoQry_Tmp.Close;
          AdoQry_Tmp.SQL.Text:=SqlText;
          AdoQry_Tmp.ExecSQL;
          If AdoQry_Body.fieldbyname('CheckFlag').aSInteger=1 then
          saveSalContractLineHistory(Dbconnect,SlcNo,AdoQry_Body.fieldbyname('SlcLineNo').AsInteger,userCode,0)
          else
          saveSalContractLineHistory(DbConnect,SlcNo,AdoQry_Body.fieldbyname('SlcLineNo').AsInteger,userCode,1);
        AdoQry_Body.Next;
      end; //end while
    end;  //end if
    end;
    DbConnect.CommitTrans;
    Act_Save.Enabled:=False;
    DispInfo('数据保存成功!',3);
  Except
    on e:Exception do
    begin
      If DbConnect.InTransaction Then
        DbConnect.RollBackTrans;
        RecOrderror(Self,AdoQry_tmp,E.message);
        DispInfo('保存数据失败,请重试!',1);
        Abort;
    end ;
  end;
  with AdoQry_Head do
  begin
    fieldbyname('SlcNo').asstring:=SlcNo;
    fieldbyname('SlcDate').asstring:=MEdt_SlcDate.Text ;
    fieldbyname('TaxRate_Percent').asstring:=Edt_TaxRate_Percent.Text;
    fieldbyname('CustomerCode').asstring:=Edt_CustomerCode.Text ;
    fieldbyname('CustomerName').asstring:=Edt_CustomerName.Text ;
    fieldbyname('CurrencyCode').asstring:=Edt_CurrencyCode.Text ;
    fieldbyname('CurrencyName').asstring:=Edt_CurrencyName.Text;
    if status='Add' then
    begin
      fieldbyname('CreateDate').asstring:=Formatdatetime('yyyy.mm.dd',Date());
      fieldbyname('CreateEmployeeCode').asstring:=UserCode ;
      fieldbyname('EditDate').asstring:=Formatdatetime('yyyy.mm.dd',Date()) ;
      fieldbyname('EdItEmployeeCode').asstring:=UserCode ;
    end
    else
    begin
      fieldbyname('EditDate').asstring:=Formatdatetime('yyyy.mm.dd',Date()) ;
      fieldbyname('EdItEmployeeCode').asstring:=UserCode ;
    end;
    fieldbyname('RemArk').asstring:=Edt_RemArk.Text ;
  end;

end;

procedure TFrm_Sal_Enter_SaleContract.Act_DeleteLineExecute(Sender: TObject);
var
  BookmArk,sqltext:String;
  i:integer;
begin
  if (AdoQry_Body.fieldbyname('linestatus').asinteger= 0) and (status<>'Add') then
  begin
    sqltext:=' select * from sa_SaleContractline where slcno='''+AdoQry_Body.fieldbyname('slcno').asstring+''' and '
            +' slclineno='''+AdoQry_Body.fieldbyname('slclineno').asstring+''' and linestatus=0' ;
    AdoQry_tmp.Close;
    AdoQry_tmp.sql.clear;
    AdoQry_tmp.sql.text := sqltext;
    AdoQry_tmp.open;
    if AdoQry_tmp.eof then
    begin
      DispInfo(' 该记录已被其他用户修改或删除,请刷新! ',1);
      abort;
    end;
  end
  else
  begin
    if (AdoQry_Body.fieldbyname('linestatus').asinteger<> 0) and (status<>'Add') then
    begin
      DispInfo(' 该记录不是未批准状态不能被删除! ',1);
      abort;
    end;
  end;
  if (not AdoQry_Body.IsEmpty) and
     (DispInfo(' 真的删除当前记录吗? ',2)='y') then
  begin
    StrinGlist.Add(AdoQry_Body.fieldbyname('slcno').asstring+AdoQry_Body.fieldbyname('slclineno').asstring);
    AdoQry_Body.Delete;
    Act_Save.Enabled:=True;
  end;
  if status='Add' then
  begin
    If AdoQry_Body.RecordCount>0 Then
    begin
      BookmArk:=AdoQry_Body.BookmArk;
      AdoQry_Body.First;
      While Not AdoQry_Body.Eof Do
      begin
        AdoQry_Body.Edit;
        AdoQry_Body.fieldbyname('slcLineNo').AsInteger:=AdoQry_Body.RecNo;
        AdoQry_Body.Post;
        AdoQry_Body.Next;
      end;
      AdoQry_Body.BookmArk:=BookMArk;
    end;
  end;
  if AdoQry_Body.RecordCount>0 then
   edt_taxrate_Percent.Enabled:=False
  else edt_taxrate_Percent.Enabled:=True;
end;

procedure TFrm_Sal_Enter_SaleContract.IntegerCheck(Sender: TObject);
begin
  inherited;
  if StrToInt(TEdit(Sender).Text)>100 then
  begin
    DispInfo('税率不能大于100',3);
    TWinControl(Sender).SetFocus;
    Abort;
  end;
end;

procedure TFrm_Sal_Enter_SaleContract.Act_PreviewExecute(Sender: TObject);
begin
  if  Act_Save.Enabled = True then
  begin
    DispInfo('没有保存数据,不能预览!',1);
    Abort;
  end;
  inherited;
end;

procedure TFrm_Sal_Enter_SaleContract.Edt_SaleTypeCodeKeyDown(
  Sender: TObject; var Key: Word; Shift: TShiftState);
begin
  inherited;
  If (Key=120) Then
    CommonHint(Sender,AdoQry_Body,'SaleTypeName','销售类型描述','SaleTypeCode','销售类型代码',
            'SaleType');
end;

procedure TFrm_Sal_Enter_SaleContract.Edt_SaleTypeCodeExit(
  Sender: TObject);
begin
  inherited;
  If Trim(TExtEdit(Sender).Text)='' Then
  begin
   { DispInfo('销售类型代码不能为空!',1);
    TWinControl(Sender).SetFocus;
    Abort;}
    Edt_SaleTypeName.Text :='';
  end
  else
  begin
    With AdoQry_Tmp Do
    begin
      Close;
      SQL.clear;
      SQL.Add('Select SaleTypeCode,SaleTypeName From SaleType '
              +' Where SaleTypeCode='''+TEdit(Sender).Text+'''');
      Open;
      If Eof Then
      begin
        DispInfo('销售类型代码错误,请重新输入',1);
        TWinControl(Sender).SetFocus;
        Abort;
      end
      else
        Edt_SaleTypeName.Text :=AdoQry_Tmp.fieldbyname('SaleTypeName').AsString;
    end;
  end;  
end;

procedure TFrm_Sal_Enter_SaleContract.Edt_PayTermCodeKeyDown(
  Sender: TObject; var Key: Word; Shift: TShiftState);
begin
  inherited;
   If key=120 Then
  CommOnHint(Sender,AdoQry_Tmp,'PayTermName','付款条款名称','PayTermCode',
             '付款条款代号',' PayTerm ');
end;

procedure TFrm_Sal_Enter_SaleContract.Edt_PayTermCodeExit(Sender: TObject);
begin
  inherited;
  If Trim(Edt_PayTermCode.text)='' then
  begin
    DispInfo('付款条款不能为空!',3);
    Edt_PayTermCode.SetFocus;
    Abort;
  end
  else
  begin                                  
    AdoQry_Tmp.Close;
    AdoQry_Tmp.SQL.clear;
    AdoQry_Tmp.SQL.Text:=' Select * from PayTerm where PayTermCode='''+Trim(Edt_PayTermCode.text)+''' ';
    AdoQry_Tmp.Open;
    if AdoQry_Tmp.Eof then
    begin
      DispInfo('付款条款输入错误!',3);
      Edt_PayTermCode.SetFocus;
      Abort;
    end
    else
      Edt_PayTermName.Text :=AdoQry_Tmp.fieldbyname('PayTermName').Asstring;
  end;
end;

procedure TFrm_Sal_Enter_SaleContract.Edt_SlcLineAddresSCodeKeyDown(
  Sender: TObject; var Key: Word; Shift: TShiftState);
begin
  inherited;
   If key=120 Then
  CommOnHint(Sender,AdoQry_Tmp,'ShipAddressName','发货地址名称','ShipAddresSCode',
             '发货地址代号',' CustomerShipAddress ',' CustomerCode= '''+Edt_CustomerCode.Text+'''');

end;

procedure TFrm_Sal_Enter_SaleContract.Edt_CustomerCodeExit(
  Sender: TObject);
var sqltext:string;
    tmpYear,tmPMonth:integer;
begin
  inherited;
  if Trim(edt_CustomerCode.text)='' then exit;
  CustomerCodeCheck(sender);
  If Status='Add' then 
  begin
    SqlText := 'select * from Sa_SaleContract '
              +' where CustomerCode='+QuotedStr(Edt_CustomerCode.Text);
    ExecuteSQl(AdoQry_Tmp,SqlText,0);
    if AdoQry_Tmp.RecordCount>0 then 
    begin
      DispInfo('已存在该客户的销售价格表!',3);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -