Пример #1
0
    protected void RepeaterTransaksiSplitBill_ItemCommand(object source, RepeaterCommandEventArgs e)
    {
        if (e.CommandName == "Pindah")
        {
            Transaksi_Class TransaksiAwal   = (Transaksi_Class)ViewState["TransaksiAwal"];
            Transaksi_Class TransaksiTujuan = (Transaksi_Class)ViewState["TransaksiTujuan"];

            //MENCARI DETAIL BERDASARKAN ID DETAIL TRANSAKSI
            var DetailTujuan = TransaksiTujuan.Detail
                               .FirstOrDefault(item => item.IDDetailTransaksi == Parse.Int(e.CommandArgument.ToString()));

            int jumlahTransaksi = 0;
            int jumlahSplitBill = 0;

            if (DetailTujuan.Quantity > 0)
            {
                jumlahSplitBill = 1;
                jumlahTransaksi = -1;
            }
            else
            {
                jumlahSplitBill = -1;
                jumlahTransaksi = 1;
            }

            //MENCARI APAKAH DETAIL ADA DI TRANSAKSI AWAL
            var DetailAwal = TransaksiAwal.Detail
                             .FirstOrDefault(item =>
                                             item.IDKombinasiProduk == DetailTujuan.IDKombinasiProduk &&
                                             item.HargaBeli == DetailTujuan.HargaBeli &&
                                             item.HargaJual == DetailTujuan.HargaJual &&
                                             item.Discount == DetailTujuan.Discount);

            if (DetailAwal == null)
            {
                //JIKA TIDAK ADA DI TRANSAKSI AWAL MEMBUAT DETAIL BARU
                DetailAwal = new TransaksiRetailDetail_Model
                {
                    IDDetailTransaksi = TransaksiAwal.IDDetailTransaksiTemp,
                    IDKombinasiProduk = DetailTujuan.IDKombinasiProduk,
                    IDStokProduk      = DetailTujuan.IDStokProduk,
                    Barcode           = DetailTujuan.Barcode,
                    Nama               = DetailTujuan.Nama,
                    Quantity           = jumlahSplitBill,
                    Berat              = DetailTujuan.Berat,
                    HargaBeliKotor     = DetailTujuan.HargaBeliKotor,
                    HargaJual          = DetailTujuan.HargaJual,
                    DiscountStore      = DetailTujuan.DiscountStore,
                    DiscountKonsinyasi = DetailTujuan.DiscountKonsinyasi,
                    Keterangan         = DetailTujuan.Keterangan
                                         //UbahQuantity
                };

                TransaksiAwal.Detail.Add(DetailAwal);
            }
            else //JIKA DI TRANSAKSI AWAL ADA DETAIL
            {
                TransaksiAwal.TambahKurangJumlahProduk(DetailAwal.IDDetailTransaksi, jumlahSplitBill);
            }

            //MELAKUKAN PENGATURAN JUMLAH DETAIL AWAL
            TransaksiTujuan.TambahKurangJumlahProduk(Parse.Int(e.CommandArgument.ToString()), jumlahTransaksi);

            LoadData();
        }
    }