Advertisement
kepiss

Untitled

Oct 19th, 2019
127
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pascal 4.17 KB | None | 0 0
  1. OpenTable(dm.Q1,['kodebarang','satuanjual'],'barang');
  2.  
  3.           i := 1;
  4.           Floading.pb1.Max := dm.Q1.RecordCount;
  5.           Floading.pb1.Position := 0;
  6.           Floading.Lprogres.Caption := 'Sedang menghitung stok ...';
  7.           FLoading.Show;
  8.  
  9.             while not dm.Q1.Eof do begin
  10.             // cek jumlah gudang
  11.                 ExQry(dm.Q3,'SELECT * from lokasi',True);
  12.                 while dm.Q3.Eof = False  do begin
  13.                 // menghitung stok semua barang per GUDANG
  14.                   ExQry(dm.Q2,'SELECT hargabeli,SUM(saldoawal + masuk - keluar) as stok FROM kartustok '+
  15.                   ' WHERE kodebarang="'+getval(dm.Q1,'kodebarang')+'" '+
  16.                   ' AND MONTH(tgl)="'+intToStr(MonthOF(now)-1)+'" '+
  17.                   ' AND YEAR(tgl)="'+IntToStr(YearOf(now)-1)+'" '+
  18.                   ' AND idgudang="'+Getval(dm.Q3,'idlokasi')+'" GROUP BY kodebarang,idgudang ORDER BY idkartustok ASC',True);
  19.  
  20.                   TotalHarga := 0;
  21.                   TotalStok  := 0;
  22.                   while not dm.Q2.Eof do begin
  23.                   // menghitung total nilai barang dan stotal stok barang
  24.                     Harga := GetValF(dm.Q2,'hargabeli') ;
  25.                     Stok  := GetValF(dm.Q2,'stok');
  26.  
  27.                     TotalHarga := TotalHarga + (Harga * Stok);
  28.                     TotalStok  := TotalStok + Stok ;
  29.  
  30.                     dm.Q2.Next;
  31.                   end;
  32.                     if TotalHarga > 0 then
  33.  
  34.                     HargaRata2 := TotalHarga / TotalStok  else
  35.                     HargaRata2 := 0;
  36.  
  37.                     // memasukan 1 per satu barang ke kartu stok
  38.                     dm.Q4.Close;
  39.                     dm.Q4.SQL.Text := ' INSERT INTO kartustok ( '+
  40.                                     '      nobukti,           '+
  41.                                     '      tgl,               '+
  42.                                     '      kodebarang,        '+
  43.                                     '      hargabeli,        '+
  44.                                     '      idgudang,          '+
  45.                                     '      satuan,            '+
  46.                                     '      saldoawal,             '+
  47.                                     '      saldoakhir,keterangan '+
  48.                                     '    )                       '+
  49.                                     '    VALUES                  '+
  50.                                     '      (                     '+
  51.                                     '        :nobukti,        '+
  52.                                     '        :tgl,          '+
  53.                                     '        :kodebarang,     '+
  54.                                     '        :hargabeli,     '+
  55.                                     '        :idgudang,       '+
  56.                                     '        :satuan,         '+
  57.                                     '        :saldoawal,            '+
  58.                                     '        :saldoakhir,:keterangan '+
  59.                                     '      ) ';
  60.                     dm.Q4.ParamByName('nobukti').AsString     := GetCode(dm.Q5,'kartustok','nobukti','');
  61.                     dm.Q4.ParamByName('tgl').AsDate           := Now;
  62.                     dm.Q4.ParamByName('kodebarang').AsString  := GetVal(dm.Q1,'kodebarang');
  63.                     dm.Q4.ParamByName('idgudang').AsString    := GetVal(dm.Q3,'idlokasi');
  64.                     dm.Q4.ParamByName('satuan').AsString      := GetVal(dm.Q1,'satuanjual');
  65.                     dm.Q4.ParamByName('hargabeli').AsFloat    := HargaRata2;
  66.                     dm.Q4.ParamByName('saldoawal').AsFloat    := TotalStok;
  67.                     dm.Q4.ParamByName('saldoakhir').AsFloat   := TotalStok;
  68.                     dm.Q4.ParamByName('keterangan').AsString  := 'STOK AWAL BYLAN'+IntToStr(MonthOf(NOW));
  69.                     dm.Q4.ExecSQL;
  70.  
  71.                     dm.Q3.Next;
  72.                 end;
  73.                 Inc(i);
  74.                 Floading.Lprogres.Caption := IntToStr(i)+'/'+ IntToStr(dm.Q1.RecordCount);
  75.                 Floading.pb1.Position    := i;
  76.                 Application.ProcessMessages;
  77.                 dm.Q1.Next;
  78.  
  79.             end;
  80.             FLoading.CLose;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement