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

📄 sal_enter_backshiporderh.pas

📁 一个MRPII系统源代码版本
💻 PAS
字号:
unit Sal_Enter_BackShipOrderH;

Interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  Base_Entry_Head, Menus, Db, ActnList, AdODB, Grids, DBGridEh, StdCtrls,
  ExtCtrls, ComCtrls, ToolWin, jpeg, ExtPrintReport;

Type
  TFrm_Sal_Enter_BackShipOrderH = Class(TFrm_Base_Entry_Head)
    AdoQry_HeadInvBillId: TFloatField;
    AdoQry_HeadInvBillNo: TStringField;
    AdoQry_HeadWHCode: TStringField;
    AdoQry_HeadWhPositionCode: TStringField;
    AdoQry_HeadInvBillDate: TDateTimeField;
    AdoQry_HeadInvBillMonth: TStringField;
    AdoQry_HeadBillTypeCode: TStringField;
    AdoQry_HeadBillType2Code: TStringField;
    AdoQry_HeadVendorCode: TStringField;
    AdoQry_HeadEmployeeCode: TStringField;
    AdoQry_HeadDeptCode: TStringField;
    AdoQry_HeadCUSTOMERCode: TStringField;
    AdoQry_HeadCURRENCYCode: TStringField;
    AdoQry_HeadPONO: TStringField;
    AdoQry_HeadMONO: TStringField;
    AdoQry_HeadInvBillValuation: TIntegerField;
    AdoQry_HeadInvBillWHCHCK: TIntegerField;
    AdoQry_HeadWH_EmployeeCode: TStringField;
    AdoQry_HeadInvBillFINCHCK: TIntegerField;
    AdoQry_HeadFin_EmployeeCode: TStringField;
    AdoQry_HeadPRINTTIMES: TIntegerField;
    AdoQry_HeadSaleType: TStringField;
    AdoQry_HeadShiftType: TStringField;
    AdoQry_HeadInvBillRemArk: TStringField;
    AdoQry_HeadInvBillInfo: TStringField;
    AdoQry_HeadOWhPositionCode: TStringField;
    AdoQry_HeadInvBillStkChck: TIntegerField;
    AdoQry_HeadStk_EmployeeCode: TStringField;
    AdoQry_HeadInvBillTmpFlag: TIntegerField;
    AdoQry_HeadOverPlan: TIntegerField;
    AdoQry_HeadPOLineNo: TIntegerField;
    AdoQry_HeadMoLineNO: TIntegerField;
    AdoQry_HeadInvBillCreateTime: TDateTimeField;
    AdoQry_HeadSfc_EmployeeCode: TStringField;
    AdoQry_HeadSal_EmployeeCode: TStringField;
    AdoQry_HeadWH_EmployeeCode2: TStringField;
    AdoQry_HeadInvBilltaxrate: TFloatField;
    AdoQry_HeadMpsSale: TIntegerField;
    AdoQry_HeadopBill: TIntegerField;
    AdoQry_HeadSysBill: TIntegerField;
    AdoQry_HeadOldInvBillNo: TStringField;
    AdoQry_HeadPriceAdjustBill: TIntegerField;
    AdoQry_HeadWipWaster: TIntegerField;
    AdoQry_HeadAmountAdjust: TIntegerField;
    AdoQry_HeadShipType: TIntegerField;
    AdoQry_HeadShipAddresSCode: TStringField;
    AdoQry_HeadShipModeCode: TStringField;
    AdoQry_HeadSaleEmployeeCode: TStringField;
    AdoQry_HeadPayTermCode: TStringField;
    AdoQry_HeadInvoiceNo: TStringField;
    AdoQry_HeadRemArk: TStringField;
    AdoQry_HeadRemArk1: TStringField;
    AdoQry_HeadTotalInvBillAmount: TFloatField;
    AdoQry_HeadTotalInvBillNoTaxAmount: TFloatField;
    AdoQry_HeadTotalInvBillnoTaxAmountc: TFloatField;
    AdoQry_HeadTotalInvBillAmountc: TFloatField;
    AdoQry_HeadCustomerName: TStringField;
    AdoQry_HeadDeptName: TStringField;
    AdoQry_HeadEmployeeName: TStringField;
    AdoQry_HeadSaleTypeName: TStringField;
    AdoQry_HeadCurrencyName: TStringField;
    AdoQry_HeadPayTermName: TStringField;
    AdoQry_HeadCreateEmployeeName: TStringField;
    AdoQry_HeadShipModeName: TStringField;
    AdoQry_HeadShipAddressName: TStringField;
    AdoQry_HeadWhName: TStringField;
    AdoQry_HeadWhPositionName: TStringField;
    procedure Act_NewExecute(Sender: TObject);
    procedure Act_ModifyExecute(Sender: TObject);
    procedure Act_LookExecute(Sender: TObject);
    procedure Act_DeleteExecute(Sender: TObject);
  private
    { Private declarations }
  public
  procedure InitForm(AdOConnection:TAdOConnection;ReadOnly:Boolean);Override;  
    { Public declarations }
  end;

var
  Frm_Sal_Enter_BackShipOrderH: TFrm_Sal_Enter_BackShipOrderH;

implementation

uses Sal_Enter_BackShipOrder_C1, Sal_Enter_BackShipOrder, Sys_Global;

{$R *.DFM}

{ TFrm_Sal_Enter_ShipOrderH }

procedure TFrm_Sal_Enter_BackShipOrderH.InitForm(AdOConnection: TAdOConnection;
  ReadOnly: Boolean);
begin
  Application.ProcessMessages;
  self.Windowstate:=wsmaximized;
  Application.ProcessMessages;
  inherited;
  If (ReadOnly) Then
  begin
    Act_New.Enabled:=False;
    Act_New.Visible:=False;
    Act_Modify.Enabled:=False;
    Act_Modify.Visible:=False;
    Pnl_Title.Caption:='销售退货查询';
    Frm_Sal_Enter_BackShipOrderH.Caption:='销售退货查询';
  end
  Else
  begin
    Pnl_Title.Caption:='销售退货';
    Frm_Sal_Enter_BackShipOrderH.Caption:='销售退货';
  end;
  SelectFromSql:=' Select InvOutBill.* ,Warehouse.WhName,WhPosition.WhPositionName,Customer.CustomerName,Dept.DeptName,'
                 +'      Employee.EmployeeName, SaleType.SaleTypeName,'
                +'       Currency.CurrencyName,PayTerm.PayTermName,'
                +'       Employee.EmployeeName As CreateEmployeeName,'
                +'       ShipMode.ShipModeName,CustomerShipAddress.ShipAddressName '
                +' From InvOutBill   '
                +' Left Join Warehouse on InvOutBill.WhCode=Warehouse.WhCode '
                +' Left Join WhPosition on InvOutBill.WhCode=WhPosition.WhCode '
                +'                      and InvOutBill.WhPositionCode=WhPosition.WhPositionCode '
                +' Left Join Customer '
                +'   On Customer.CustomerCode=InvOutBill.CustomerCode '
                +' Left Join Dept  '
                +'   On Dept.DeptCode=InvOutBill.DeptCode '
                +' Left Join Employee  '
                +'   On Employee.EmployeeCode=InvOutBill.SaleEmployeeCode  '
                +' left Join Currency '
                +'   On Currency.CurrencyCode=InvOutBill.CurrencyCode '
                +' left Join PayTerm  '
                +'   On PayTerm.PayTermCode=InvOutBill.PayTermCode  '
                +' Left Join ShipMode  '
                +'   On ShipMode.ShipModeCode=InvOutBill.ShipModeCode  '
                +' left Join SaleType '
                +'   On SaleType.SaleTypeCode=InvOutBill.SaleType  '
                +' left Join CustomerShipAddress  '
                +'   On CustomerShipAddress.ShipAddresSCode=InvOutBill.ShipAddresSCode ';
  ConditionUserDefine := '  exists (select * from InvOutBillLine where InvOutBillLIne.InvBillId=InvOutBill.InvBillId )   '
                +'   and BillTypeCode in (''0205'',''0206'') '
                +'   and ShipType=2 ';
  Condition:=' InvBillWhChCk=0 ';
  OrderByFields:=' CustomerCode,InvBillDate ';
  GetData;
end;

procedure TFrm_Sal_Enter_BackShipOrderH.Act_NewExecute(Sender: TObject);
begin
  inherited;
  Frm_Sal_Enter_BackShipOrder_C1:=TFrm_Sal_Enter_BackShipOrder_C1.Create(Application);
  Frm_Sal_Enter_BackShipOrder_C1.SetSysParam(UserCode,ModuleCode,MenuId,LoginDate);
  Frm_Sal_Enter_BackShipOrder_C1.InitForm(DbConnect,False);
end;

procedure TFrm_Sal_Enter_BackShipOrderH.Act_ModifyExecute(Sender: TObject);
begin
  if AdoQry_Head.RecordCount=0 then exit;
  if AdoQry_Head.fieldbyname('InvBillWhChCk').AsInteger=1 then
  begin
    DispInfo('已审核的销售退货单不可以修改!',3);
    Abort;
  end;
  inherited;
  Frm_Sal_Enter_BackShipOrder:=TFrm_Sal_Enter_BackShipOrder.Create(Application);
  Frm_Sal_Enter_BackShipOrder.SetSysParam(UserCode,ModuleCode,MenuId,LoginDate);
  Frm_Sal_Enter_BackShipOrder.InitForm(DbConnect,'Edit',AdoQry_Head);
  Frm_Sal_Enter_BackShipOrder.ShowModal;
  if Frm_Sal_Enter_BackShipOrder<>nil then
    Frm_Sal_Enter_BackShipOrder.Close;
end;

procedure TFrm_Sal_Enter_BackShipOrderH.Act_LookExecute(Sender: TObject);
begin
  inherited;
  IF AdoQry_Head.RecordCount<>0 Then
  begin
    Frm_Sal_Enter_BackShipOrder:=TFrm_Sal_Enter_BackShipOrder.Create(Application);
    Frm_Sal_Enter_BackShipOrder.SetSysParam(UserCode,ModuleCode,MenuId,LoginDate);
    Frm_Sal_Enter_BackShipOrder.InitForm(DbConnect,'Query',AdoQry_Head);
    Frm_Sal_Enter_BackShipOrder.ShowModal;
    if Frm_Sal_Enter_BackShipOrder<>nil then
      Frm_Sal_Enter_BackShipOrder.Close;
  end;
end;

procedure TFrm_Sal_Enter_BackShipOrderH.Act_DeleteExecute(Sender: TObject);
var
  SqlText,BookmArk:String;
  AdoQuery:TAdoQuery;
begin
  if AdoQry_Head.RecordCount=0 then exit;
  If DispInfo('确认真的要删除这张销售退货单吗?',2)<>'y' Then
    exit;
  if AdoQry_Head.fieldbyname('InvBillWhChCk').AsInteger=1 then
  begin
    DispInfo('已审核的销售退货单不可以删除!',3);
    Abort;
  end;
  AdoQuery:=TAdoQuery.Create(nil);
  AdoQuery.Connection := Dbconnect;
  BookmArk:= AdoQry_Head.BookmArk;
  try
    DbConnect.beginTrans;
//    saveBackShipOrderHistory(dbconnect,AdoQry_Head.fieldbyname('InvBillNo').AsString,userCode,2);
    SQlText:=' Select * From InvOutBillLine  '
            +'   Join InvOutBill on InvOutBillLine.InvBillId=InvOutBill.InvBillId '
            +'    and InvBillNo='''+AdoQry_Head.fieldbyname('InvBillNo').AsString+''' ';
    AdoQry_Tmp.Close;
    AdoQry_Tmp.SQL.clear;
    AdoQry_Tmp.SQL.Text := SqlText;
    AdoQry_Tmp.Open;
    AdoQry_Tmp.First;
    While Not AdoQry_Tmp.Eof Do
    begin
//      saveBackShipOrderLineHistory(dbconnect,AdoQry_Head.fieldbyname('InvBillNo').AsString,AdoQry_Tmp.fieldbyname('BackShipLineNo').asinteger,userCode,2);
      AdoQry_Tmp.Next;
    end;
    SqlText:=' Delete InvOutBillLine Where InvBillId='+AdoQry_Tmp.fieldbyname('InvBillId').AsString
            +'  Delete InvOutBill Where InvBillNo='''+AdoQry_Head.fieldbyname('InvBillNo').AsString+''' ';
    AdoQry_Tmp.Close;
    AdoQry_Tmp.SQL.clear;
    AdoQry_Tmp.SQL.Text := SqlText;
    AdoQry_Tmp.ExecSQL;
    AdoQuery.Free;
    DbConnect.CommitTrans;
  except
    DbConnect.RollBackTrans;
    Abort;
  end;   
  getdata;
  try
    if not AdoQry_Head.Eof  then
      AdoQry_Head.BookmArk:=BookmArk;
  except
  end;
  inherited;
end;

end.

⌨️ 快捷键说明

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