Esempio n. 1
0
        /// <summary>
        /// Method khusus untuk menyimpan pembayaran penjualan tunai
        /// </summary>
        /// <param name="obj"></param>
        /// <returns></returns>
        private int SavePembayaranPiutang(JualProduk obj)
        {
            PembayaranPiutangProduk            pembayaranPiutang;
            ItemPembayaranPiutangProduk        itemPembayaranPiutang;
            IPembayaranPiutangProdukRepository pembayaranPiutangRepo = new PembayaranPiutangProdukRepository(_context, _log);

            var result = 0;

            // set detail
            itemPembayaranPiutang = pembayaranPiutangRepo.GetByJualID(obj.jual_id);
            if (itemPembayaranPiutang != null)                      // sudah ada pelunasan
            {
                itemPembayaranPiutang.nominal    = obj.grand_total; // GetTotalNotaSetelahDiskonDanPPN(obj);
                itemPembayaranPiutang.JualProduk = new JualProduk {
                    jual_id = itemPembayaranPiutang.jual_id
                };
                itemPembayaranPiutang.entity_state = EntityState.Modified;

                // set header by detail
                pembayaranPiutang          = itemPembayaranPiutang.PembayaranPiutangProduk;
                pembayaranPiutang.is_tunai = obj.is_tunai;

                // set item pembayaran
                pembayaranPiutang.item_pembayaran_piutang.Add(itemPembayaranPiutang);

                result = pembayaranPiutangRepo.Update(pembayaranPiutang, true);
            }
            else // belum ada pelunasan hutang
            {
                pembayaranPiutang = new PembayaranPiutangProduk();

                // set header
                pembayaranPiutang.customer_id = obj.customer_id;
                pembayaranPiutang.pengguna_id = obj.pengguna_id;
                pembayaranPiutang.tanggal     = obj.tanggal;
                pembayaranPiutang.keterangan  = "Penjualan tunai produk";
                pembayaranPiutang.is_tunai    = obj.is_tunai;

                // set item
                itemPembayaranPiutang            = new ItemPembayaranPiutangProduk();
                itemPembayaranPiutang.jual_id    = obj.jual_id;
                itemPembayaranPiutang.JualProduk = obj;
                itemPembayaranPiutang.nominal    = obj.grand_total;
                itemPembayaranPiutang.keterangan = string.Empty;

                // set item pembayaran
                pembayaranPiutang.item_pembayaran_piutang.Add(itemPembayaranPiutang);

                // simpan item pembayaran
                result = pembayaranPiutangRepo.Save(pembayaranPiutang, true);
            }

            return(result);
        }
Esempio n. 2
0
        /// <summary>
        /// Method untuk menghapus pembayaran piutang jika terjadi perubahan status nota dari tunai ke kredit
        /// </summary>
        /// <param name="obj"></param>
        /// <returns></returns>
        private int HapusPembayaranPiutang(JualProduk obj)
        {
            PembayaranPiutangProduk            pembayaranHutang;
            ItemPembayaranPiutangProduk        itemPembayaranHutang;
            IPembayaranPiutangProdukRepository pembayaranHutangRepo = new PembayaranPiutangProdukRepository(_context, _log);

            var result = 0;

            // set detail
            itemPembayaranHutang = pembayaranHutangRepo.GetByJualID(obj.jual_id);
            if (itemPembayaranHutang != null)
            {
                pembayaranHutang = itemPembayaranHutang.PembayaranPiutangProduk;
                result           = pembayaranHutangRepo.Delete(pembayaranHutang);
            }

            return(result);
        }