LAMPIRAN
Lampiran 1.
Pembagian Tugas dan Tanggung Jawab PT. Putra Tunas Megah Bardasarkan struktur organisasi pada Gambar 2.1., tugas, wewenang, dan tanggung jawab dari setiap pemegang jabatan di PT. Putra Tunas Megah adalah sebagai berikut:
2. Direktur Tugas:
- Memimpin perusahaan agar dapat berjalan dengan baik.
- Mengkoordinir seluruh departemen yang ada di perusahaan tersebut. - Mengontrol masalah keahlian teknis, proyek, penjualan dan pembelanjaan
perusahaan. Wewenang:
Mempunyai wewenang atas persetujuan: - Surat-surat ekstern dan intern
- Pesanan pembelian
- Penerimaan dan pengeluaran keuangan Tanggung jawab:
- Bertanggung jawab kepada Dewan Komisaris atas jalannya perusalannya.
3. General Manager Tugas:
- Menyeleksi dan memeriksa data yang masuk ke perusahaan.
- Menganalisis dan memeriksa pesanan yang akan dibeli (purchase order) perusahaan.
- Menganalisis perintah kerja (work order) yang masuk.
- Menganalisis daftar harga yang telah direncanakan oleh pihak produksi Wewenang:
- Mempunyai wewenang atas keputusan apakah order yang diperoleh layak untuk dijalankan atau tidak dan kesesuaian dengan harganya.
- Mempunyai wewenang untuk merubah purchase order yang telah dibuat oleh bagian pembelian.
Tanggung jawab:
- Bertanggungjawab kepada Direktur atas keputusan pengerjaan order yang
dilakukan di workshop.
- Bertanggungjawab terhadap keluar masuknya arus kas perusahaan.
4. Bagian Administrasi/Sekretaris Tugas:
- Mempersiapkan kontrak kerja sama antara perusahaan dengan pihak konsumen sesuai dengan perjanjian dan pesanan.
- Mengurus semua surat-surat dan masalah pencatatan administrasi perusahaan.
Wewenang:
- Menjalin komunikasi yang baik dengan pihak konsumen dan perusahaan-perusahaan lain.
Tanggung jawab:
- Bertanggung jawab kepada Direktur atas pembuatan kontrak kerja dan masalah administrasi perusahaan.
- Bertanggung jawab atas pembuatan surat izin dan lisensi yang penting.
5. Bagian Keuangan Tugas:
- Melakukan transaksi pembayaran dan penerimaan. - Melakukan pencatatan atas setiap transaksi perusahaan.
- Menganalisis biaya dan pengeluaran yang dikeluarkan perusahaan untuk meningkatkan produktivitas perusahaan.
Wewenang:
Menandatangani surat-surat yang berhubungan dengan masalah keuangan, yaitu:
- Laporan keuangan bulanan perusahaan. - Faktur penjualan dan penerimaan kas. - Bukti-bukti pembayaran.
- Surat-surat berharga, seperti cek dan bilyet. Tanggung jawab:
- Bertanggung jawab kepada General Manager atas penerimaan dan pengeluaran kas serta pembukuan perusahaan.
6. Pembelian dan Penjualan Tugas :
- Menentukan jumlah material yang harus dipesan sesuai dengan jumlah material yang masih ada di gudang.
- Melakukan pemesanan bahan baku setelah mendapat persetujuan dari Direktur.
- Memberi masukan untuk perencanaan peluang bisnis perusahaan. - Mengadakan kontak dengan pelanggan.
Wewenang :
- Mengadakan surat kontrak penjualan produk dengan pihak konsumen dan menetapkan waktu penyerahan produk kepada pelanggan melalui masukan dari bagian produksi.
Tanggung jawab :
- Bertanggung jawab kepada General Manager terhadap pelaksanaan tugasnya
7. Bagian Produksi Tugas:
- Mengawasi semua proses produksi secara langsung - Membuat laporan harian
- Membuat progress report atas pembuatan produk.
- Menetapkan kebijakan-kebijakan yang dapat meningkatkan efisien kerja.
Wewenang:
- Mempunyai wewenang untuk membuat keputusan harian sehubungan dengan pengawasan pekerjaan yang dilakukan di bagian produksi.
Tanggung jawab:
- Bertanggung jawab kepada General Manager atas proses produksi yang dilakukan baik dari segi kualitas maupun kuantitas produk.
8. Design Engineering Tugas:
- Membuat perencanaan, perancangan dan merekayasa gambar-gambar teknis produk sesuai dengan permintaan pihak konsumen.
- Membuat rincian mengenai kebutuhan dan spesifikasi material pembuatan produk.
Wewenang:
- Mempunyai wewenang atas persetujuan gambar teknis produk yang diberikan ke bagian produksi.
Tanggung jawab:
- Bertanggung jawab kepada General Manager terhadap pelaksanaan tugasnya.
9. Kepala Gudang Peralatan Tugas:
- Mengatur prosedur penggunaan peralatan yang akan digunakan dalam proses produksi.
- Mengatur keluar masuknya peralatan yang digunakan selama proses produksi agar tidak terjadi kehilangan.
Wewenang:
- Menetapkan kebijakan dalam menggunakan peralatan apabila diperlukan. Tanggung jawab:
- Bertanggung jawab kepada General Manager atas peralatan yang digunakan bagian produksi.
10. Kepala Gudang Material dan Produk Jadi Tugas:
- Mengatur prosedur penggunaan material yang akan digunakan dalam proses produksi.
- Mengatur tata letak material dan produk jadi yang akan dipasarkan. Wewenang:
- Menetapkan kebijakan dalam penggunaan material. Tanggung jawab:
Bertanggung jawab kepada General Manager atas penggu naan material.
11. Manager Workshop Tugas:
- Menentukan jumlah kebutuhan tenaga kerja yang dibutuhkan untuk pengerjaan setiap proyek.
- Mengatur jadwal pengiriman produk dan pelaksanaan proyek di lapangan. Wewenang:
- Mempunyai wewenang untuk menetapkan kebijakan penjadwalan kerja proyek di lapangan apabila diperlukan.
Tanggung jawab :
- Bertanggung jawab kepada Manager Produksi terhadap pelaksanaan tugasnya.
12. Site Manager Tugas:
- Mengkoordinir dan mengawasi pekerjaan yang dilakukan di lapangan proyek.
Wewenang:
- Mempunyai wewenang untuk bertindak sebagai wakil perusahaan pada saat pengerjaan proyek di lapangan.
Tanggung jawab:
- Bertanggung jawab kepada Manager Produksi terhadap pelaksanaan pekerjaan di lapangan.
13. Civil Supervisor Tugas:
- Mengatur dan mengawasi berlangsungnya pengerjaan proyek di lapangan yang berhubungan dengan pembangunan fisik proyek.
Wewenang:
- Mempunyai wewenang atas perintah dan kebijakan terhadap pekerja di lapangan.
Tanggung jawab:
- Bertanggung jawab kepada Site Manager atas penyelesaian proyek di lapangan.
14. Mechanical Supervisor Tugas:
- Memantau dan mengatur jalannya pembangunan proyek secara mekanis di lapangan.
Wewenang:
- Mempunyai wewenang untuk memberikan perintah kepada pekerja di lapangan.
Tanggung jawab:
- Bertanggung jawab kepada Site Manager atas pekerjannya di lapangan.
unit USalesOrder; interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, DB, DBTables, Grids, DBGrids, DBCtrls, Mask, ExtCtrls, ComCtrls; type TFSalesOrder = class(TForm) Label1: TLabel; Label2: TLabel; Label3: TLabel; Label8: TLabel; GB1: TGroupBox; Label4: TLabel; Label5: TLabel; Label6: TLabel; Label7: TLabel; TotalPenj: TLabel; Label9: TLabel; EJumlah: TEdit; EHarga: TEdit; BTambah: TButton; BSaveItem: TButton; BHapusItem: TButton; BBersih: TButton; BSave: TButton; BCari: TButton; Bhapus: TButton; BKeluar: TButton; ETanggal: TEdit; Label10: TLabel; ENoSO: TEdit; EKodeCustomer: TDBLookupComboBox; ENamaCustomer: TDBEdit; EKodeProdukJadi: TDBLookupComboBox; ENamaProdukJ adi: TDBEdit;
ESatuan: TDBText; DBGrid1: TDBGrid; TCustomer: TTable; TProdukJadi: TTable; TBufferSO: TTable; TSalesOrder: TTable; DCustomer: TDataSource; DProdukJadi: TDataSource; DBufferSO: TDataSource; TStokProdukJadi: TTable; TKebutuhanBB: TTable; TBoMBB: TTable; TButuhPesanBB: TTable; TStokBBLebih: TTable; TMasterBahanBaku: TTable;
TKartuStokPJ: TTable; RadioGroup1: TRadioGroup; Order: TRadioButton; Standard: TRadioButton; TCustomerKode_Customer: TStringField; TCustomerNama_Customer: TStringField; TCustomerAlamat: TStringField; TCustomerAlamat_Pengiriman: TStringField; TProdukJadiKode_Produk_Jadi: TStringField; TProdukJadiNama_Produk_Jadi: TStringField; TProdukJadiSatuan: TStringField; TBufferSOKode_Produk_Jadi: TStringField; TBufferSOJenis: TStringField; TBufferSOJumlah: TIntegerField; TBufferSOHarga: TCurrencyField; TBufferSOJumlah_Harga: TCurrencyField; TBufferSONama_Produk_Jadi: TStringField; TBufferSOSatuan: TStringField; TStokProdukJadiNo_Tabel_PJ: TStringField; TStokProdukJadiTanggal: TDateField; TStokProdukJadiKode_Produk_Jadi: TStringField; TStokProdukJadiJenis: TStringField; TStokProdukJadiQuantity_On_Order: TIntegerField; TStokProdukJadiQuantity_In: TIntegerField; TStokProdukJadiQuantity_Out: TIntegerField; TButuhPesanBBKode_Bahan_Baku: TStringField; TButuhPesanBBKode_Supplier: TStringField; TButuhPesanBBJumlah_Dibutuhkan: TIntegerField; TButuhPesanBBJumlah_Dipesan: TIntegerField; TStokBBLebihKode_Bahan_Baku: TStringField; TStokBBLebihStok_Lebih: TIntegerField; TStokBBLebihStok_Sebelum_Pesan: TIntegerField; TMasterBahanBakuKode_Bahan_Baku: TStringField; TMasterBahanBakuKode_Supplier: TStringField; TKartuStokPJKode_Produk_Jadi: TStringField; TKartuStokPJQuantity_On_Order: TIntegerField; Label11: TLabel; ETanggalSelesai: TDateTimePicker; TSalesOrderNo_Sales_Order: TStringField; TSalesOrderTanggal: TDateField; TSalesOrderKode_Customer: TStringField; TSalesOrderKode_Produk_Jadi: TStringField; TSalesOrderTanggal_Selesai: TDateField; TSalesOrderJenis: TStringField; TSalesOrderJumlah: TIntegerField; TSalesOrderHarga_Satuan: TCurrencyField; TBufferSOTanggal_Selesai: TDateField; TKebutuhanBBNo_Sales_Order: TStringField; TKebutuhanBBKode_Produk_Jadi: TStringField; TKebutuhanBBTanggal_Pesan: TDateField; TKebutuhanBBKode_Bahan_Baku: TStringField; TKebutuhanBBJumlah_Produk_Jadi: TIntegerField; TKebutuhanBBJumlah_Bahan_Baku: TIntegerField; TKebutuhanBBTotal_Bahan_Baku: TIntegerField;
TKebutuhanBBKeterangan: TStringField; TButuhPesanBBTanggal: TDateField; TBoMBBKode_Produk_Jadi: TStringField; TBoMBBJenis: TStringField; TBoMBBKode_Bahan_Baku: TStringField; TBoMBBLead_Time: TIntegerField; TBoMBBJumlah: TIntegerField;
procedure BersihItem(Sender: TObject); procedure Bersih(Sender: TObject); procedure Bangun(Sender: TObject);
procedure Tutup(Sender: TObject; var Action: TCloseAction); procedure PilihCust(Sender: TObject);
procedure PilihPJ(Sender: TObject);
procedure TKN13(Sender: TObject; var Key: Char); procedure Fangka(Sender: TObject; var Key: Char); procedure SimpanItem(Sender: TObject);
procedure TampilData(DataSet: TDataSet); procedure Msk(Sender: TObject);
procedure Klr(Sender: TObject);
procedure HapusItem(Sender: TObject); procedure CariData(Sender: TObject); procedure Kembalikan(Sender: TObject); procedure SaveData(Sender: TObject); procedure CekNota(Sender: TObject); procedure Exit(Sender: TObject);
procedure GB1DblClick(Sender: TObject); procedure FormShow(Sender: TObject); private procedure BuatNomorUrut; procedure Hitung; public procedure BukaTBufferSO; procedure HitungJumlah; end; var FSalesOrder: TFSalesOrder; S:String; implementation {$R *.dfm} function RightStr
(Const Str: String; Size: Word): String; begin
if Size > Length(Str) then Size := Length(Str) ; RightStr := Copy(Str, Length(Str)-Size+1, Size) end;
procedure TFSalesOrder.BuatNomorUrut; var nomor:integer;
nom:string;
begin if TSalesOrder.RecordCount=0 then nomor := 1 else begin TSalesOrder.Last; nom := rightstr(TSalesOrder.Fields[0].AsString,4); nomor := strtoint(nom)+1; end; ENoSO.Text := 'SO'+Formatfloat('0000',nomor); end;
procedure TFSalesOrder.BersihItem(Sender: TObject); begin EKodeProdukJadi.KeyValue := ''; ENamaProdukJadi.Visible := False; ETanggalSelesai.DateTime := now(); EJumlah.Clear; Standard.Checked := False; Order.Checked := False; ESatuan.Visible := False; EHarga.Clear; BHapusItem.Enabled := False; EKodeProdukJadi.SetFocus; end; procedure TFSalesOrder.BukaTBufferSO; begin try TBufferSO.Close; TBufferSO.EmptyTable; TBufferSO.Open; except
with TBufferSO.FieldDefs do begin Clear; Add('Kode_Produk_Jadi',ftString,6); Add('Tanggal_Selesai',ftDate); Add('Jenis',ftString,8); Add('Jumlah',ftInteger); Add('Harga',ftCurrency); Add('Jumlah_Harga',ftCurrency); end;
with TBufferSO.IndexDefs do begin Clear; Add('','Kode_Produk_Jadi;Tanggal_Selesai;Jenis',[ixPrimary]); end; TBufferSO.CreateTable; TBufferSO.Open; end; end;
procedure TFSalesOrder.Bersih(Sender: TObject); begin
BuatNomorUrut; ETanggal.Text := FormatDateTime('dd/mmmm/yyyy',date); EKodeCustomer.KeyValue := ''; ENamaCustomer.Visible := False; BHapus.Enabled := False; BSave.Enabled := False; GB1.Visible := False; TotalPenj.Caption := '0'; EKodeCustomer.SetFocus; ENoSO.SelStart := 1; end;
procedure TFSalesOrder.Bangun(Sender: TObject); begin TCustomer.Open; TProdukJadi.Open; TSalesOrder.Open; BukaTBufferSO; TStokProdukJadi.Open; TKebutuhanBB.Open; TBoMBB.Open; TStokBBLebih.Open; TMasterBahanBaku.Open; TKartuStokPJ.Open; end;
procedure TFSalesOrder.Tutup(Sender: TObject; var Action: TCloseAction); begin TCustomer.Close; TProdukJadi.Close; TSalesOrder.Close; TBufferSO.Close; TStokProdukJadi.Close; TKebutuhanBB.Close; TBoMBB.Close; TStokBBLebih.Close; TMasterBahanBaku.Close; TKartuStokPJ.Close; end;
procedure TFSalesOrder.PilihCust(Sender: TObject); begin
if not ENamaCustomer.Visible then begin BukaTBufferSO; GB1.Visible := True; BersihItem(BTambah); end; ENamaCustomer.Visible := True; end;
procedure TFSalesOrder.PilihPJ(Sender: TObject); begin
ENamaProdukJadi.Visible := True; ESatuan.Visible := True;
Standard.Checked := True; if TBufferSO.FindKey([EKodeProdukJadi.Text]) then TampilData(DBufferSO.DataSet) else begin EJumlah.Clear; EHarga.Clear; BHapusItem.Enabled := False; end; end;
procedure TFSalesOrder.TKN13(Sender: TObject; var Key: Char); begin
if Key=#13 then begin
if Sender=ENoSO then ETanggal.SetFocus;
if Sender=ETanggal then EKodeCustomer.SetFocus; if Sender=EKodeCustomer then
if GB1.Visible then EKodeProdukJadi.SetFocus;
if Sender=EKodeProdukJadi then ETanggalSelesai.SetFocus; if Sender=ETanggalSelesai then EJumlah.SetFocus;
if Sender=ENamaProdukJadi then EJumlah.SetFocus; if Sender=EJumlah then EHarga.SetFocus;
if Sender=EHarga then BSaveItem.SetFocus; end;
end;
procedure TFSalesOrder.Fangka(Sender: TObject; var Key: Char); begin TKN13(Sender,Key); if not(((Key>='0')and(Key<='9'))or(Key=#8))then Key:=#0; end; procedure TFSalesOrder.Hitung;
var RecordKe:TBookmark; Total:Currency; begin
BSave.Enabled := False; Total := 0;
if not TBufferSO.IsEmpty then begin RecordKe := TBufferSO.GetBookmark; TBufferSO.First;
while not TBufferSO.Eof do begin
Total := Total+TBufferSOJumlah_Harga.AsCurrency; TBufferSO.Next; end; BSave.Enabled := True; TBufferSO.GotoBookmark(RecordKe); end; TotalPenj.Caption := FormatFloat('#,##0',Total); end;
procedure TFSalesOrder.SimpanItem(Sender: TObject); begin
if EKodeProdukJadi.Text =''then begin Beep;
ShowMessage('Nama produk jadi belum dimasukkan...'); EKodeProdukJadi.SetFocus;
end else
if EJumlah.Text ='' then begin Beep;
ShowMessage('Berapa jumlah yang dijual??'); EJumlah.SetFocus;
end else
if EHarga.Text ='' then begin Beep;
ShowMessage('Berapa harganya???'); Eharga.SetFocus;
end else begin
if BHapusItem.Enabled then TBufferSO.Edit else TBufferSO.Append; TBufferSOKode_Produk_Jadi.AsString := EKodeProdukJadi.Text; if Standard.Checked then TBufferSOJenis.AsString:='Standard'else if Order.Checked then TBufferSOJenis.AsString:='Order';
TBufferSOTanggal_Selesai.AsDateTime := ETanggalSelesai.Date; TBufferSOJumlah.AsInteger := StrToInt(EJumlah.Text); TBufferSOHarga.AsCurrency := StrToCurr(EHarga.Text); TBufferSOJumlah_Harga.AsCurrency := TbufferSOJumlah.AsInteger*TBufferSOHarga.AsCurrency; TBufferSO.Post; Hitung; BersihItem(BTambah); end; end;
procedure TFSalesOrder.TampilData(DataSet: TDataSet); begin EKodeProdukJadi.KeyValue := TBufferSOKode_Produk_Jadi.AsString; ETanggalSelesai.DateTime := TBufferSOTanggal_Selesai.AsDateTime; EJumlah.Text := IntToStr(TBufferSOJumlah.AsInteger); EHarga.Text := CurrToStr(TBufferSOHarga.AsCurrency); ENamaProdukJadi.Visible := True; ESatuan.Visible := True;
if TBufferSOJenis.AsString='Standard' then Standard.Checked:=True else if TBufferSOJenis.AsString='Order' then Order.Checked:=True;
BHapusItem.Enabled := True; end;
procedure TFSalesOrder.Msk(Sender: TObject); begin
TBufferSO.AfterScroll := TampilData; TampilData(DBufferSO.DataSet); end;
procedure TFSalesOrder.Klr(Sender: TObject); begin
TBufferSO.AfterScroll := NIL; end;
procedure TFSalesOrder.HapusItem(Sender: TObject); begin
TBufferSO.Delete; Hitung;
BersihItem(BTambah); end;
procedure TFSalesOrder.CariData(Sender: TObject); begin
if InputQuery('Mencari Data...','Masukan No.Sales Order...', S) then with TSalesOrder do if FindKey([s])then begin ENoSO.Clear; EKodeCustomer.KeyValue := ''; ENamaCustomer.Visible := False; BHapus.Enabled := False; BSave.Enabled := False; GB1.Visible := False; TotalPenj.Caption := '0'; EKodeCustomer.SetFocus; ENoSO.SelStart := 1; ETanggal.Text := FormatDateTime('dd/mmmm/yyyy',Fields[1].AsDateTime); EKodeCustomer.KeyValue := TSalesOrderKode_Customer.Text; PilihCust(EKodeCustomer); ENoSO.Text := TSalesOrderNo_Sales_Order.AsString; Filter := 'No_Sales_Order='''+s+''''; FindFirst; repeat TBufferSO.Append; TBufferSOKode_Produk_Jadi.AsString := TSalesOrderKode_Produk_Jadi.AsString; TBufferSOTanggal_Selesai.AsDateTime := TSalesOrderTanggal_Selesai.AsDateTime; TBufferSOJenis.AsString := TSalesOrderJenis.AsString; TBufferSOJumlah.AsInteger := TSalesOrderJumlah.AsInteger; TBufferSOHarga.AsCurrency := TSalesOrderHarga_Satuan.AsCurrency; TBufferSOJumlah_Harga.AsCurrency := TSalesOrderJumlah.AsInteger*TSalesOrderHarga_Satuan.AsCurrency; TBufferSO.Post;
until not FindNext; Hitung;
BHapus.Enabled := True; end else
begin Beep;
ShowMessage('Data Tidak Ditemukan!!!'); end;
end;
procedure TFSalesOrder.Kembalikan(Sender: TObject); var Lebih:Integer; D:Integer; E:Integer; begin while TSalesOrder.FindKey([S]) do begin if TKartuStokPJ.FindKey([TSalesOrderKode_Produk_Jadi.AsString]) then
begin D:=TKartuStokPJQuantity_On_Order.AsInteger; TKartuStokPJ.Edit; TKartuStokPJQuantity_On_Order.AsInteger := D-TSalesOrderJumlah.AsInteger; TKartuStokPJ.Post; end; TSalesOrder.Delete; end;
while TStokProdukJadi.FindKey([S]) do begin TStokProdukJadi.Delete;
end;
while TKebutuhanBB.FindKey([S]) do begin
if TKebutuhanBBKeterangan.AsString = 'Cukup' then begin TStokBBLebih.FindKey([TKebutuhanBBKode_Bahan_Baku.AsString]); Lebih := TStokBBLebihStok_Lebih.AsInteger; E:=TStokBBLebihStok_Sebelum_Pesan.AsInteger; TStokBBLebih.Edit; TStokBBLebihStok_Lebih.AsInteger := Lebih+TKebutuhanBBTotal_Bahan_Baku.AsInteger; TStokBBLebihStok_Sebelum_Pesan.AsInteger := E+TKebutuhanBBTotal_Bahan_Baku.AsInteger; TStokBBLebih.Post; end; TKebutuhanBB.Delete; end; HitungJumlah;
if Sender=BHapus then Bersih(BBersih); end;
procedure TFSalesOrder.HitungJumlah;
var RecordKe:TBookmark; Jumlah:Integer; Lebih:Integer; begin
TButuhPesanBB.Close; TButuhPesanBB.EmptyTable; TButuhPesanBB.Open;
if not TKebutuhanBB.IsEmpty then begin RecordKe := TKebutuhanBB.GetBookmark; TKebutuhanBB.First;
while not TKebutuhanBB.Eof do begin
if not ((TKebutuhanBBKeterangan.AsString ='Cukup')or(TKebutuhanBBKeterangan.AsString = 'Dipesan')) then if TMasterBahanBaku.FindKey([TKebutuhanBBKode_Bahan_Baku.AsString])then if TStokBBLebih.FindKey([TKebutuhanBBKode_Bahan_Baku.AsString])then if not TButuhPesanBB.FindKey([TKebutuhanBBTanggal_Pesan.AsDateTime,TKebutuhanBBKode_Bahan_Baku. AsString]) then begin TButuhPesanBB.Append; TButuhPesanBBTanggal.AsDateTime := TKebutuhanBBTanggal_Pesan.AsDateTime; TButuhPesanBBKode_Bahan_Baku.AsString := TKebutuhanBBKode_Bahan_Baku.AsString; TButuhPesanBBKode_Supplier.AsString := TMasterBahanBakuKode_Supplier.AsString; TButuhPesanBBJumlah_Dibutuhkan.AsInteger := TKebutuhanBBTotal_Bahan_Baku.AsInteger; if TButuhPesanBBJumlah_Dibutuhkan.AsInteger > TStokBBLebihStok_Lebih.AsInteger then
TButuhPesanBBJumlah_Dipesan.AsInteger := TButuhPesanBBJumlah_Dibutuhkan.AsInteger-TStokBBLebihStok_Lebih.AsInteger else TButuhPesanBBJumlah_Dipesan.AsInteger := StrToInt('0'); TButuhPesanBB.Post; end else begin TButuhPesanBB.Edit; TButuhPesanBBTanggal.AsDateTime := TKebutuhanBBTanggal_Pesan.AsDateTime; TButuhPesanBBKode_Bahan_Baku.AsString := TKebutuhanBBKode_Bahan_Baku.AsString; TButuhPesanBBKode_Supplier.AsString := TMasterBahanBakuKode_Supplier.AsString; Jumlah := TButuhPesanBBJumlah_Dibutuhkan.AsInteger; TButuhPesanBBJumlah_Dibutuhkan.AsInteger := Jumlah + TKebutuhanBBTotal_Bahan_Baku.AsInteger;
if TButuhPesanBBJumlah_Dibutuhkan.AsInteger > TStokBBLebihStok_Lebih.AsInteger then TButuhPesanBBJumlah_Dipesan.AsInteger := TButuhPesanBBJumlah_Dibutuhkan.AsInteger-TStokBBLebihStok_Lebih.AsInteger else TButuhPesanBBJumlah_Dipesan.AsInteger := StrToInt('0'); TButuhPesanBB.Post; end; TKebutuhanBB.Next; end; TKebutuhanBB.GotoBookmark(RecordKe); end; TButuhPesanBB.Close; end;
procedure TFSalesOrder.SaveData(Sender: TObject); var A:String;
B:Integer; C:Integer; D:Integer; begin
if (ENoSO.Text='') then begin Beep;
ShowMessage('Anda belum memasukkan no sales order...'); ENoSO.SetFocus;
end else
if BHapus.Enabled then Kembalikan(BSave); TBufferSO.First;
while not TBufferSO.Eof do begin TSalesOrder.Append; TSalesOrderNo_Sales_Order.AsString := ENoSO.Text; TSalesOrder['Tanggal'] := ETanggal.Text; TSalesOrderKode_Customer.AsString := EKodeCustomer.Text; TSalesOrderKode_Produk_Jadi.AsString := TBufferSOKode_Produk_Jadi.AsString; TSalesOrderTanggal_Selesai.AsDateTime := TBufferSOTanggal_Selesai.AsDateTime; TSalesOrderJenis.AsString := TBufferSOJenis.AsString; TSalesOrderJumlah.AsInteger := TBufferSOJumlah.AsInteger; TSalesOrderHarga_Satuan.AsCurrency := TBufferSOHarga.AsCurrency; TSalesOrder.Post; TStokProdukJadi.Append; TStokProdukJadiNo_Tabel_PJ.AsString := ENoSO.Text; TStokProdukJadi['Tanggal'] := ETanggal.Text; TStokProdukJadiJenis.AsString := TBufferSOJenis.AsString;
TStokProdukJadiKode_Produk_Jadi.AsString := TBufferSOKode_Produk_Jadi.AsString; TStokProdukJadiQuantity_On_Order.AsInteger := TBufferSOJumlah.AsInteger; TStokProdukJadiQuantity_In.AsInteger := StrToInt('0'); TStokProdukJadiQuantity_Out.AsInteger := StrToInt('0'); TStokProdukJadi.Post; if not TKartuStokPJ.FindKey([TBufferSOKode_Produk_Jadi.AsString])then begin TKartuStokPJ.Append; TKartuStokPJKode_Produk_Jadi.AsString := TBufferSOKode_Produk_Jadi.AsString; TKartuStokPJQuantity_On_Order.AsInteger := TBufferSOJumlah.AsInteger; TKartuStokPJ.Post; end else begin C:=TKartuStokPJQuantity_On_Order.AsInteger; TKartuStokPJ.Edit; TKartuStokPJQuantity_On_Order.AsInteger := C+TBufferSOJumlah.AsInteger; TKartuStokPJ.Post; end; TBoMBB.First;
while not TBoMBB.Eof do begin if ((TBoMBBKode_Produk_Jadi.AsString=TBufferSOKode_Produk_Jadi.AsString)and(TBoMBBJenis.AsStri ng=TBufferSOJenis.AsString))then begin TKebutuhanBB.Append; TKebutuhanBBNo_Sales_Order.AsString := ENoSO.Text; TKebutuhanBBKode_Produk_Jadi.AsString := TBufferSOKode_Produk_Jadi.AsString; TKebutuhanBBJumlah_Produk_Jadi.AsInteger := TBufferSOJumlah.AsInteger; TKebutuhanBBTanggal_Pesan.AsDateTime := TBufferSOTanggal_Selesai.AsDateTime-TBoMBBLead_Time.AsInteger; TKebutuhanBBKode_Bahan_Baku.AsString := TBoMBBKode_Bahan_Baku.AsString; TKebutuhanBBJumlah_Bahan_Baku.AsInteger := TBoMBBJumlah.AsInteger; TKebutuhanBBTotal_Bahan_Baku.AsInteger := TKebutuhanBBJumlah_Produk_Jadi.AsInteger*TKebutuhanBBJumlah_Bahan_Baku.AsInteger; if TStokBBLebih.FindKey([TKebutuhanBBKode_Bahan_Baku.AsString])then B:= TStokBBLebihStok_Lebih.AsInteger; D:= TStokBBLebihStok_Sebelum_Pesan.AsInteger; if TKebutuhanBBTotal_Bahan_Baku.AsInteger<=B then begin TStokBBLebih.Edit; TKebutuhanBBKeterangan.AsString := 'Cukup'; TStokBBLebihStok_Lebih.AsInteger := B-TKebutuhanBBTotal_Bahan_Baku.AsInteger; TStokBBLebihStok_Sebelum_Pesan.AsInteger := D-TKebutuhanBBTotal_Bahan_Baku.AsInteger; TStokBBLebih.Post; end; TKebutuhanBB.Post; end; TBoMBB.Next; end; if not TBoMBB.FindKey([TBufferSOKode_Produk_Jadi.AsString])then begin
Beep;
ShowMessage('Anda belum melengkapi data BoQ'); end; TBufferSO.Next; end; HitungJumlah; Bersih(BBersih); end;
procedure TFSalesOrder.CekNota(Sender: TObject); begin
if TSalesOrder.FindKey([ENoSO.Text]) then begin Beep;
ShowMessage('No.Sales Order tersebut telah ada...'); ENoSO.Clear;
ENoSO.SetFocus; end;
end;
procedure TFSalesOrder.Exit(Sender: TObject); begin
close; end;
procedure TFSalesOrder.GB1DblClick(Sender: TObject); begin
BersihItem(BTambah); end;
procedure TFSalesOrder.FormShow(Sender: TObject); begin TCustomer.Open; TProdukJadi.Open; TSalesOrder.Open; BukaTBufferSO; TStokProdukJadi.Open; TKebutuhanBB.Open; TBoMBB.Open; TStokBBLebih.Open; TMasterBahanBaku.Open; TKartuStokPJ.Open; Bersih(BBersih); end; end.