Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- OpenTable(dm.Q1,['kodebarang','satuanjual'],'barang');
- i := 1;
- Floading.pb1.Max := dm.Q1.RecordCount;
- Floading.pb1.Position := 0;
- Floading.Lprogres.Caption := 'Sedang menghitung stok ...';
- FLoading.Show;
- while not dm.Q1.Eof do begin
- // cek jumlah gudang
- ExQry(dm.Q3,'SELECT * from lokasi',True);
- while dm.Q3.Eof = False do begin
- // menghitung stok semua barang per GUDANG
- ExQry(dm.Q2,'SELECT hargabeli,SUM(saldoawal + masuk - keluar) as stok FROM kartustok '+
- ' WHERE kodebarang="'+getval(dm.Q1,'kodebarang')+'" '+
- ' AND MONTH(tgl)="'+intToStr(MonthOF(now)-1)+'" '+
- ' AND YEAR(tgl)="'+IntToStr(YearOf(now)-1)+'" '+
- ' AND idgudang="'+Getval(dm.Q3,'idlokasi')+'" GROUP BY kodebarang,idgudang ORDER BY idkartustok ASC',True);
- TotalHarga := 0;
- TotalStok := 0;
- while not dm.Q2.Eof do begin
- // menghitung total nilai barang dan stotal stok barang
- Harga := GetValF(dm.Q2,'hargabeli') ;
- Stok := GetValF(dm.Q2,'stok');
- TotalHarga := TotalHarga + (Harga * Stok);
- TotalStok := TotalStok + Stok ;
- dm.Q2.Next;
- end;
- if TotalHarga > 0 then
- HargaRata2 := TotalHarga / TotalStok else
- HargaRata2 := 0;
- // memasukan 1 per satu barang ke kartu stok
- dm.Q4.Close;
- dm.Q4.SQL.Text := ' INSERT INTO kartustok ( '+
- ' nobukti, '+
- ' tgl, '+
- ' kodebarang, '+
- ' hargabeli, '+
- ' idgudang, '+
- ' satuan, '+
- ' saldoawal, '+
- ' saldoakhir,keterangan '+
- ' ) '+
- ' VALUES '+
- ' ( '+
- ' :nobukti, '+
- ' :tgl, '+
- ' :kodebarang, '+
- ' :hargabeli, '+
- ' :idgudang, '+
- ' :satuan, '+
- ' :saldoawal, '+
- ' :saldoakhir,:keterangan '+
- ' ) ';
- dm.Q4.ParamByName('nobukti').AsString := GetCode(dm.Q5,'kartustok','nobukti','');
- dm.Q4.ParamByName('tgl').AsDate := Now;
- dm.Q4.ParamByName('kodebarang').AsString := GetVal(dm.Q1,'kodebarang');
- dm.Q4.ParamByName('idgudang').AsString := GetVal(dm.Q3,'idlokasi');
- dm.Q4.ParamByName('satuan').AsString := GetVal(dm.Q1,'satuanjual');
- dm.Q4.ParamByName('hargabeli').AsFloat := HargaRata2;
- dm.Q4.ParamByName('saldoawal').AsFloat := TotalStok;
- dm.Q4.ParamByName('saldoakhir').AsFloat := TotalStok;
- dm.Q4.ParamByName('keterangan').AsString := 'STOK AWAL BYLAN'+IntToStr(MonthOf(NOW));
- dm.Q4.ExecSQL;
- dm.Q3.Next;
- end;
- Inc(i);
- Floading.Lprogres.Caption := IntToStr(i)+'/'+ IntToStr(dm.Q1.RecordCount);
- Floading.pb1.Position := i;
- Application.ProcessMessages;
- dm.Q1.Next;
- end;
- FLoading.CLose;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement