亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? sy990.pas

?? 利用delhpi 開發的一個關于零售業進銷管理系統
?? PAS
?? 第 1 頁 / 共 2 頁
字號:
unit SY990;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, BaseDialog, StdCtrls, DB, DBTables, Buttons, ComCtrls;

type
  TfmSY990 = class(TfmBaseDialog)
    Memo1: TMemo;
    qyUpdateInventoryBeginning: TQuery;
    qyInventoryBeginning: TQuery;
    qyInsertInventoryBeginning: TQuery;
    ProgressBar: TProgressBar;
    qyInsertAccountReceivableBeginning: TQuery;
    qyUpdateAccountReceivableBeginning: TQuery;
    qyAccountReceivableBeginning: TQuery;
    qyAccountPayableBeginning: TQuery;
    qyUpdateAccountPayableBeginning: TQuery;
    qyInsertAccountPayableBeginning: TQuery;
    procedure bnOKClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
    procedure ProgressPostiotn(iPosition: Integer);
  public
    { Public declarations }
  end;

var
  fmSY990: TfmSY990;

implementation

uses DataModule, PublicFunction, Main;

{$R *.dfm}

procedure TfmSY990.bnOKClick(Sender: TObject);
var
  fBeginningQuantity, fBeginningBalance, fUnitPrice : Extended;
begin
  inherited;
  if not MyConfirmation('確定執行月結操作嗎?') then
    Exit;
  ProgressBar.Visible := True;
  ProgressPostiotn(4);
  with qyTemp do
  begin
    Close;
    SQL.Clear;
    SQL.Add('SELECT COUNT(PaymentID) AS PaymentID ');
    SQL.Add('FROM AccountPayableMaster ');
    SQL.Add('WHERE CompanyID = :CompanyID ');
    SQL.Add('AND PayDate >= :BeginPayDate AND PayDate <= :EndPayDate ');
    SQL.Add('AND PayAmount <> TotalBalance ');
    ParamByName('CompanyID').AsString := sCompanyID;
    ParamByName('BeginPayDate').AsString := sStartPeriodDate;
    ParamByName('EndPayDate').AsString := sEndPeriodDate;
    Open;
  end;
  if qyTemp.FieldByName('PaymentID').AsInteger <> 0 then
  begin
    MyWarning('尚有' + IntToStr(qyTemp.FieldByName('PaymentID').AsInteger) +
              '張付款單的付款金額與實沖金額不等,月結操作停止!');
    ProgressBar.Visible := False;
    Abort;
  end;
  ProgressPostiotn(8);

  with qyTemp do
  begin
    Close;
    SQL.Clear;
    SQL.Add('SELECT COUNT(ReceiveID) AS ReceiveID ');
    SQL.Add('FROM AccountReceivableMaster ');
    SQL.Add('WHERE CompanyID = :CompanyID ');
    SQL.Add('AND ReceiveDate >= :BeginReceiveDate AND ReceiveDate <= :EndReceiveDate ');
    SQL.Add('AND ReceiveAmount <> TotalBalance ');
    ParamByName('CompanyID').AsString := sCompanyID;
    ParamByName('BeginReceiveDate').AsString := sStartPeriodDate;
    ParamByName('EndReceiveDate').AsString := sEndPeriodDate;
    Open;
  end;
  if qyTemp.FieldByName('ReceiveID').AsInteger <> 0 then
  begin
    MyWarning('尚有' + IntToStr(qyTemp.FieldByName('ReceiveID').AsInteger) +
              '張收款沖賬單的收款金額與實沖金額不等,月結操作停止!');
    ProgressBar.Visible := False;
    Abort;
  end;
  ProgressPostiotn(12);

  with qyInsertInventoryBeginning do
  begin
    Close;
    SQL.Clear;
    SQL.Add('INSERT INTO InventoryBeginning ');
    SQL.Add(' (CompanyID, InventoryYear, InventoryMonth, WarehouseID, ');
    SQL.Add('  ProductID, BeginningQuantity, BeginningBalance) ');
    SQL.Add('VALUES ');
    SQL.Add(' (:CompanyID, :InventoryYear, :InventoryMonth, :WarehouseID, ');
    SQL.Add('  :ProductID, :BeginningQuantity, :BeginningBalance) ');
  end;
  with qyUpdateInventoryBeginning do
  begin
    Close;
    SQL.Clear;
    SQL.Add('UPDATE InventoryBeginning ');
    SQL.Add('SET ');
    SQL.Add('BeginningQuantity = BeginningQuantity + :BeginningQuantity, ');
    SQL.Add('BeginningBalance = :BeginningBalance ');
    SQL.Add('WHERE CompanyID = :CompanyID ');
    SQL.Add('AND InventoryYear = :InventoryYear AND InventoryMonth = :InventoryMonth ');
    SQL.Add('AND WarehouseID = :WarehouseID AND ProductID = :ProductID ');
  end;

  with qyInventoryBeginning do
  begin
    Close;
    SQL.Clear;
    SQL.Add('SELECT ProductID, BeginningQuantity ');
    SQL.Add('FROM InventoryBeginning ');
    SQL.Add('WHERE CompanyID = :CompanyID ');
    SQL.Add('AND InventoryYear = :InventoryYear ');
    SQL.Add('AND InventoryMonth = :InventoryMonth ');
    SQL.Add('AND WarehouseID = :WarehouseID ');
    SQL.Add('AND ProductID = :ProductID ');
  end;
  with qyInsertAccountReceivableBeginning do
  begin
    Close;
    SQL.Clear;
    SQL.Add('INSERT INTO AccountReceivableBeginning ');
    SQL.Add(' (CompanyID, BeginningYear, BeginningMonth, ');
    SQL.Add('  CustomerID, BeginningBalance) ');
    SQL.Add('VALUES ');
    SQL.Add(' (:CompanyID, :BeginningYear, :BeginningMonth, ');
    SQL.Add('  :CustomerID, :BeginningBalance) ');
  end;
  with qyUpdateAccountReceivableBeginning do
  begin
    Close;
    SQL.Clear;
    SQL.Add('UPDATE AccountReceivableBeginning ');
    SQL.Add('SET BeginningBalance = BeginningBalance + :BeginningBalance ');
    SQL.Add('WHERE :CompanyID = :CompanyID ');
    SQL.Add('AND BeginningYear = :BeginningYear ');
    SQL.Add('AND BeginningMonth = :BeginningMonth ');
    SQL.Add('AND CustomerID = :CustomerID ');
  end;
  with qyAccountReceivableBeginning do
  begin
    Close;
    SQL.Clear;
    SQL.Add('SELECT CustomerID ');
    SQL.Add('FROM AccountReceivableBeginning ');
    SQL.Add('WHERE :CompanyID = :CompanyID ');
    SQL.Add('AND BeginningYear = :BeginningYear ');
    SQL.Add('AND BeginningMonth = :BeginningMonth ');
    SQL.Add('AND CustomerID = :CustomerID ');
  end;
  with qyInsertAccountPayableBeginning do
  begin
    Close;
    SQL.Clear;
    SQL.Add('INSERT INTO AccountPayableBeginning ');
    SQL.Add(' (CompanyID, BeginningYear, BeginningMonth, ');
    SQL.Add('  SupplierID, BeginningBalance) ');
    SQL.Add('VALUES ');
    SQL.Add(' (:CompanyID, :BeginningYear, :BeginningMonth, ');
    SQL.Add('  :SupplierID, :BeginningBalance) ');
  end;
  with qyUpdateAccountPayableBeginning do
  begin
    Close;
    SQL.Clear;
    SQL.Add('UPDATE AccountPayableBeginning ');
    SQL.Add('SET BeginningBalance = BeginningBalance + :BeginningBalance ');
    SQL.Add('WHERE :CompanyID = :CompanyID ');
    SQL.Add('AND BeginningYear = :BeginningYear ');
    SQL.Add('AND BeginningMonth = :BeginningMonth ');
    SQL.Add('AND SupplierID = :SupplierID ');
  end;
  with qyAccountPayableBeginning do
  begin
    Close;
    SQL.Clear;
    SQL.Add('SELECT SupplierID ');
    SQL.Add('FROM AccountPayableBeginning ');
    SQL.Add('WHERE :CompanyID = :CompanyID ');
    SQL.Add('AND BeginningYear = :BeginningYear ');
    SQL.Add('AND BeginningMonth = :BeginningMonth ');
    SQL.Add('AND SupplierID = :SupplierID ');
  end;
  ProgressPostiotn(16);

  DM.DB.StartTransaction;
  try

    qyInventoryBeginning.Prepare;
    qyUpdateInventoryBeginning.Prepare;
    qyInsertAccountReceivableBeginning.Prepare;
    qyUpdateAccountReceivableBeginning.Prepare;
    qyInsertAccountPayableBeginning.Prepare;
    qyUpdateAccountPayableBeginning.Prepare;
    ProgressPostiotn(20);

    with qyTemp do
    begin
      Close;
      SQL.Clear;
      SQL.Add('DELETE FROM InventoryBeginning ');
      SQL.Add('WHERE CompanyID = :CompanyID ');
      SQL.Add('AND InventoryYear = :InventoryYear ');
      SQL.Add('AND InventoryMonth = :InventoryMonth ');
      ParamByName('CompanyID').AsString := sCompanyID;
      ParamByName('InventoryYear').AsString := LeftStr(sEndPeriodDate, 2);
      ParamByName('InventoryMonth').AsString := SubStr(sEndPeriodDate, 4, 2);
      ExecSQL;
    end;
    ProgressPostiotn(24);

    with qyTemp do
    begin
      Close;
      SQL.Clear;
      SQL.Add('SELECT ProductID, WarehouseID, BeginningQuantity, BeginningBalance ');
      SQL.Add('FROM InventoryBeginning ');
      SQL.Add('WHERE CompanyID = :CompanyID ');
      SQL.Add('AND InventoryYear = :InventoryYear ');
      SQL.Add('AND InventoryMonth = :InventoryMonth ');
      ParamByName('CompanyID').AsString := sCompanyID;
      ParamByName('InventoryYear').AsString := LeftStr(sStartPeriodDate, 2);
      ParamByName('InventoryMonth').AsString := SubStr(sStartPeriodDate, 4, 2);
      Open;
    end;
    ProgressPostiotn(28);
    qyTemp.First;
    while not qyTemp.Eof do
    begin
      with qyInsertInventoryBeginning do
      begin
        ParamByName('CompanyID').AsString := sCompanyID;
        ParamByName('InventoryYear').AsString := LeftStr(sEndPeriodDate, 2);
        ParamByName('InventoryMonth').AsString := SubStr(sEndPeriodDate, 4, 2);
        ParamByName('WarehouseID').AsString := qyTemp.FieldByName('WarehouseID').AsString;
        ParamByName('ProductID').AsString := qyTemp.FieldByName('ProductID').AsString;
        ParamByName('BeginningQuantity').AsFloat := qyTemp.FieldByName('BeginningQuantity').AsFloat;
        ParamByName('BeginningBalance').AsFloat := qyTemp.FieldByName('BeginningBalance').AsFloat;
        ExecSQL;
      end;
      qyTemp.Next;
    end;
    ProgressPostiotn(32);

    with qyTemp do
    begin
      Close;
      SQL.Clear;
      SQL.Add('SELECT A.InventoryYear, A.InventoryMonth, ');
      SQL.Add('A.WarehouseID, A.ProductID, C.AddOrSubtract, ');
      SQL.Add('SUM(A.TotalQuantity) AS TotalQuantity, ');
      SQL.Add('SUM(A.TotalAmount) AS TotalAmount ');
      SQL.Add('FROM InventoryAnalyst A, InventoryChange C ');
      SQL.Add('WHERE A.CompanyID = :CompanyID ');
      SQL.Add('AND A.InventoryYear = :InventoryYear ');
      SQL.Add('AND A.InventoryMonth = :InventoryMonth ');
      SQL.Add('AND A.CompanyID = C.CompanyID AND A.ChangeCode = C.ChangeCode ');
      SQL.Add('GROUP BY A.InventoryYear, A.InventoryMonth, ');
      SQL.Add('A.WarehouseID, A.ProductID, C.AddOrSubtract ');
      ParamByName('CompanyID').AsString := sCompanyID;
      ParamByName('InventoryYear').AsString := LeftStr(sStartPeriodDate, 2);
      ParamByName('InventoryMonth').AsString := SubStr(sStartPeriodDate, 4, 2);
      Open;
    end;
    ProgressPostiotn(36);
    qyTemp.First;
    while not qyTemp.Eof do
    begin
      if qyTemp.FieldByName('AddOrSubtract').AsString = '+' then

        fBeginningQuantity := qyTemp.FieldByName('TotalQuantity').AsFloat
      else

        fBeginningQuantity := qyTemp.FieldByName('TotalQuantity').AsFloat * -1;

      with qyInventoryBeginning do
      begin
        Close;
        ParamByName('CompanyID').AsString := sCompanyID;
        ParamByName('InventoryYear').AsString := LeftStr(sEndPeriodDate, 2);
        ParamByName('InventoryMonth').AsString := SubStr(sEndPeriodDate, 4, 2);
        ParamByName('WarehouseID').AsString := qyTemp.FieldByName('WarehouseID').AsString;
        ParamByName('ProductID').AsString := qyTemp.FieldByName('ProductID').AsString;
        Open;
      end;
      if qyInventoryBeginning.FieldByName('ProductID').AsString = '' then
      begin

        with qyInsertInventoryBeginning do
        begin
          ParamByName('CompanyID').AsString := sCompanyID;
          ParamByName('InventoryYear').AsString := LeftStr(sEndPeriodDate, 2);
          ParamByName('InventoryMonth').AsString := SubStr(sEndPeriodDate, 4, 2);
          ParamByName('WarehouseID').AsString := qyTemp.FieldByName('WarehouseID').AsString;
          ParamByName('ProductID').AsString := qyTemp.FieldByName('ProductID').AsString;
          ParamByName('BeginningQuantity').AsFloat := fBeginningQuantity;
          ParamByName('BeginningBalance').AsFloat := 0;
          ExecSQL;
        end;
      end
      else
      begin

        with qyUpdateInventoryBeginning do
        begin
          ParamByName('CompanyID').AsString := sCompanyID;
          ParamByName('InventoryYear').AsString := LeftStr(sEndPeriodDate, 2);
          ParamByName('InventoryMonth').AsString := SubStr(sEndPeriodDate, 4, 2);
          ParamByName('WarehouseID').AsString := qyTemp.FieldByName('WarehouseID').AsString;
          ParamByName('ProductID').AsString := qyTemp.FieldByName('ProductID').AsString;
          ParamByName('BeginningQuantity').AsFloat := fBeginningQuantity;
          ParamByName('BeginningBalance').AsFloat := 0;
          ExecSQL;
        end;
      end;
      qyTemp.Next;
    end;
    ProgressPostiotn(38);

    with qyTemp do
    begin
      Close;
      SQL.Clear;
      SQL.Add('SELECT A.ProductID, A.WarehouseID, ');
      SQL.Add('SUM(A.TotalQuantity) AS TotalQuantity, ');
      SQL.Add('SUM(A.TotalAmount) AS TotalAmount ');
      SQL.Add('FROM InventoryAnalyst A, InventoryChange C ');
      SQL.Add('WHERE A.CompanyID = :CompanyID ');
      SQL.Add('AND A.InventoryYear = :InventoryYear ');
      SQL.Add('AND A.InventoryMonth = :InventoryMonth ');
      SQL.Add('AND C.AddOrSubtract = ''+'' ');
      SQL.Add('AND A.CompanyID = C.CompanyID AND A.ChangeCode = C.ChangeCode ');
      SQL.Add('GROUP BY A.ProductID, A.WarehouseID ');
      ParamByName('CompanyID').AsString := sCompanyID;
      ParamByName('InventoryYear').AsString := LeftStr(sStartPeriodDate, 2);
      ParamByName('InventoryMonth').AsString := SubStr(sStartPeriodDate, 4, 2);
      Open;
    end;
    qyTemp.First;
    while not qyTemp.Eof do
    begin

      with qyInventoryBeginning do
      begin
        Close;
        ParamByName('CompanyID').AsString := sCompanyID;
        ParamByName('InventoryYear').AsString := LeftStr(sEndPeriodDate, 2);
        ParamByName('InventoryMonth').AsString := SubStr(sEndPeriodDate, 4, 2);
        ParamByName('WarehouseID').AsString := qyTemp.FieldByName('WarehouseID').AsString;
        ParamByName('ProductID').AsString := qyTemp.FieldByName('ProductID').AsString;
        Open;
      end;
      fBeginningQuantity := qyInventoryBeginning.FieldByName('BeginningQuantity').AsFloat;

      if (qyTemp.FieldByName('TotalQuantity').AsFloat =  0) then
      begin
        with qyInventoryBeginning do
        begin
          Close;
          ParamByName('CompanyID').AsString := sCompanyID;
          ParamByName('InventoryYear').AsString := LeftStr(sStartPeriodDate, 2);
          ParamByName('InventoryMonth').AsString := SubStr(sStartPeriodDate, 4, 2);
          ParamByName('WarehouseID').AsString := qyTemp.FieldByName('WarehouseID').AsString;
          ParamByName('ProductID').AsString := qyTemp.FieldByName('ProductID').AsString;
          Open;
        end;
        if qyInventoryBeginning.FieldByName('BeginningQuantity').AsFloat <> 0 then
          fUnitPrice := RealToInt(qyInventoryBeginning.FieldByName('BeginningAmount').AsFloat /
                                  qyInventoryBeginning.FieldByName('BeginningQuantity').AsFloat)
        else

          fUnitPrice := 0;
      end
      else

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲综合清纯丝袜自拍| 国产高清久久久久| 美日韩黄色大片| 亚洲高清一区二区三区| 日本va欧美va瓶| 懂色av中文一区二区三区| 日本精品视频一区二区| 日韩欧美一级二级| 日韩亚洲欧美一区| 亚洲图片激情小说| 国产精品你懂的在线| 亚洲成人一区在线| 国产91丝袜在线播放九色| 91福利国产精品| 久久这里只有精品6| 亚洲成年人影院| www.亚洲色图.com| 欧美电影免费观看高清完整版在| 成人免费一区二区三区视频| 日韩av电影一区| 色女孩综合影院| 久久精品一区二区三区不卡牛牛 | 亚洲国产精品99久久久久久久久 | 国产日韩欧美精品一区| 久久99蜜桃精品| 日韩欧美不卡一区| 人人狠狠综合久久亚洲| 欧美一区二区三区视频免费| 视频在线在亚洲| 欧美一级久久久| 久久疯狂做爰流白浆xx| 精品国产乱码久久| 国产麻豆精品一区二区| 久久精品免视看| 国产精品一区久久久久| 久久婷婷综合激情| 国产成人在线观看免费网站| 国产精品三级视频| 色哟哟欧美精品| 亚洲一区二区视频| 91精品国产黑色紧身裤美女| 捆绑紧缚一区二区三区视频| 一区二区三区丝袜| 在线成人小视频| 精久久久久久久久久久| 国产欧美日韩视频一区二区 | 欧美一级在线观看| 韩国成人在线视频| 国产精品久久福利| 日本乱人伦aⅴ精品| 亚洲国产乱码最新视频| 日韩一级二级三级| 国产99久久久国产精品免费看| 亚洲婷婷综合色高清在线| 91搞黄在线观看| 免费观看在线综合| 亚洲国产高清aⅴ视频| 91电影在线观看| 精品一区二区三区在线播放| 中日韩免费视频中文字幕| 在线观看日韩毛片| 美日韩一级片在线观看| 中文字幕欧美一区| 欧美福利一区二区| 丁香五精品蜜臀久久久久99网站 | 在线观看免费视频综合| 美脚の诱脚舐め脚责91 | 欧美亚洲一区三区| 热久久国产精品| 国产精品初高中害羞小美女文| 欧美午夜影院一区| 粉嫩蜜臀av国产精品网站| 一区二区欧美视频| 久久久久久一级片| 欧美日韩一区二区三区免费看| 国产传媒一区在线| 日韩不卡一区二区| 1024精品合集| 久久综合色天天久久综合图片| 欧美性一级生活| 国产精品99久久久久| 日韩av一区二区在线影视| 亚洲欧美日韩一区二区三区在线观看| 欧美一区二区私人影院日本| av午夜一区麻豆| 国产一区二区三区在线观看免费 | 日韩欧美一区在线观看| 国产69精品久久久久777| 日韩精品亚洲专区| 亚洲日本一区二区| 国产亚洲精品7777| 欧美一区二区三区四区五区 | 亚洲欧美国产高清| 国产日产欧美一区| 亚洲黄色免费电影| 久久综合狠狠综合久久综合88| 欧美日韩五月天| 一本到不卡免费一区二区| 成人午夜精品在线| 国产精品996| 国内精品伊人久久久久影院对白| 午夜成人在线视频| 亚洲午夜精品网| 一区二区三区色| 亚洲免费色视频| 亚洲女女做受ⅹxx高潮| 国产精品夫妻自拍| 国产精品福利一区二区| 国产精品不卡一区| 亚洲图片你懂的| 亚洲免费观看高清| 亚洲综合视频在线观看| 亚洲国产成人高清精品| 亚洲在线成人精品| 亚洲综合视频在线| 午夜影视日本亚洲欧洲精品| 亚洲成av人综合在线观看| 亚洲国产日产av| 日本中文一区二区三区| 久久99在线观看| 91精品国产综合久久精品性色| 欧美视频三区在线播放| 欧美伦理视频网站| 精品奇米国产一区二区三区| 精品国产乱码久久久久久1区2区| 久久老女人爱爱| 国产精品理论片在线观看| 亚洲精品欧美激情| 日韩高清中文字幕一区| 激情欧美一区二区三区在线观看| 国产电影一区二区三区| hitomi一区二区三区精品| 91搞黄在线观看| 日韩精品专区在线| 国产欧美一区二区在线| 亚洲欧美激情一区二区| 丝袜诱惑制服诱惑色一区在线观看| 日韩电影一区二区三区四区| 国内精品国产成人| 91浏览器在线视频| 欧美一区二区在线观看| 欧美国产日产图区| 亚洲国产精品一区二区www | 调教+趴+乳夹+国产+精品| 日韩av中文字幕一区二区三区| 国产在线国偷精品免费看| 99久久婷婷国产| 欧美一区二区三区四区视频| 国产色产综合产在线视频| 亚洲黄色性网站| 国产一区二区三区日韩| 91黄色免费网站| 久久久一区二区| 亚洲bt欧美bt精品777| 国产乱理伦片在线观看夜一区| 色88888久久久久久影院野外| 日韩网站在线看片你懂的| 国产精品国产成人国产三级| 无吗不卡中文字幕| 成人av网站在线| 欧美大片免费久久精品三p| 亚洲三级视频在线观看| 国内精品伊人久久久久av影院 | 91麻豆蜜桃一区二区三区| 在线播放欧美女士性生活| 国产精品国产三级国产有无不卡| 三级不卡在线观看| 一本一道波多野结衣一区二区| 久久影院午夜片一区| 亚洲高清免费观看高清完整版在线观看| 蜜桃久久精品一区二区| 欧美视频在线一区| 日韩一区在线播放| 欧美日韩精品一区二区三区四区| 久久精品人人做| 理论片日本一区| 欧美电影影音先锋| 亚洲一区二区三区免费视频| 成人免费视频一区| 久久在线免费观看| 麻豆精品视频在线观看免费| 欧美日韩国产在线观看| 怡红院av一区二区三区| aa级大片欧美| 国产精品成人免费| 成人一级片网址| 国产精品视频九色porn| 国产成人啪免费观看软件| 欧美xxxx在线观看| 理论片日本一区| 日韩精品影音先锋| 青青草国产精品97视觉盛宴 | 日本vs亚洲vs韩国一区三区| 欧美性猛交一区二区三区精品| 亚洲另类一区二区| 欧洲精品视频在线观看| 亚洲综合999| 欧美精品 国产精品| 免费看欧美女人艹b| 日韩欧美一二三|