Beispiel #1
0
    protected void ButtonSimpan_Click(object sender, EventArgs e)
    {
        try
        {
            if (DropDownListTempatPenerima.Items.Count == 0)
            {
                LiteralWarning.Text = Alert_Class.Pesan(TipeAlert.Danger, "Anda harus membuat lokasi tujuan transfer. <a href='/WITAdministrator/Store/Tempat/Pengaturan.aspx'>Buat lokasi baru</a>");
                return;
            }

            bool   StokKurang       = false;
            string TransferBerhasil = string.Empty;

            using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
            {
                PenggunaLogin           Pengguna = (PenggunaLogin)Session["PenggunaLogin"];
                TBTransferBahanBaku     DataTransferBahanBaku = null;
                TBStokBahanBaku[]       daftarStokBahanBaku   = db.TBStokBahanBakus.Where(data => data.IDTempat == DropDownListTempatPengirim.SelectedValue.ToInt()).ToArray();
                TransferBahanBaku_Class TransferBahanBaku     = new TransferBahanBaku_Class();

                foreach (RepeaterItem item in RepeaterStokBahanBaku.Items)
                {
                    Label        LabelIDBahanBaku      = (Label)item.FindControl("LabelIDBahanBaku");
                    Label        LabelJumlah           = (Label)item.FindControl("LabelJumlah");
                    TextBox      TextBoxJumlahTransfer = (TextBox)item.FindControl("TextBoxJumlahTransfer");
                    HtmlTableRow panelStok             = (HtmlTableRow)item.FindControl("panelStok");

                    if (TextBoxJumlahTransfer.Text.ToDecimal() > 0)
                    {
                        //JIKA JUMLAH TRANSFER VALID TIDAK NULL DAN TIDAK 0
                        decimal JumlahTransfer = TextBoxJumlahTransfer.Text.ToDecimal();

                        //PENCARIAN STOK BAHAN BAKU
                        var stokBahanBaku = daftarStokBahanBaku.FirstOrDefault(data => data.IDBahanBaku == LabelIDBahanBaku.Text.ToInt());

                        if (JumlahTransfer <= (stokBahanBaku.Jumlah / stokBahanBaku.TBBahanBaku.Konversi))
                        {
                            if (string.IsNullOrWhiteSpace(LabelIDTransferBahanBaku.Text))
                            {
                                #region MEMBUAT TRANSFER BAHAN BAKU BARU
                                DataTransferBahanBaku = TransferBahanBaku.Tambah(db, Pengguna.IDPengguna, DropDownListTempatPengirim.SelectedValue.ToInt(), DropDownListTempatPenerima.SelectedValue.ToInt(), TextBoxKeterangan.Text);

                                LabelIDTransferBahanBaku.Text = DataTransferBahanBaku.IDTransferBahanBaku;
                                #endregion
                            }
                            else
                            {
                                DataTransferBahanBaku = db.TBTransferBahanBakus.FirstOrDefault(item2 => item2.IDTransferBahanBaku == LabelIDTransferBahanBaku.Text);
                            }

                            //JIKA JUMLAH YANG AKAN DI TRANSFER LEBIH KECIL ATAU SAMA DENGAN JUMLAH STOK
                            StokBahanBaku_Class.UpdateBertambahBerkurang(db, DateTime.Now, Pengguna.IDPengguna, stokBahanBaku, JumlahTransfer, (stokBahanBaku.HargaBeli.Value * stokBahanBaku.TBBahanBaku.Konversi.Value), true, EnumJenisPerpindahanStok.TransferStokKeluar, "Transfer #" + LabelIDTransferBahanBaku.Text);

                            //PENGECEKAN APAKAH SUDAH ADA DI DETAIL
                            var TransferBahanBakuDetail = DataTransferBahanBaku.TBTransferBahanBakuDetails
                                                          .FirstOrDefault(item2 => item2.IDBahanBaku == stokBahanBaku.IDBahanBaku);

                            if (TransferBahanBakuDetail == null) //DETAIL TRANSFER BAHAN BAKU TIDAK DITEMUKAN MEMBUAT BARU
                            {
                                DataTransferBahanBaku.TBTransferBahanBakuDetails.Add(new TBTransferBahanBakuDetail
                                {
                                    IDBahanBaku = stokBahanBaku.IDBahanBaku.Value,
                                    IDSatuan    = stokBahanBaku.TBBahanBaku.IDSatuanKonversi,
                                    HargaBeli   = (stokBahanBaku.HargaBeli.Value * stokBahanBaku.TBBahanBaku.Konversi.Value),
                                    Jumlah      = JumlahTransfer
                                });
                            }
                            else //JIKA SUDAH TERDAPAT DI DETAIL HANYA MENAMBAHKAN QTY
                            {
                                TransferBahanBakuDetail.Jumlah += JumlahTransfer;
                            }

                            //MENGKOSONGKAN TEXTBOX - LABEL JUMLAH DIISI DENGAN JUMLAH STOK TERBARU
                            TextBoxJumlahTransfer.Text = string.Empty;
                            panelStok.Attributes.Add("class", "");
                            LabelJumlah.Text = (LabelJumlah.Text.ToDecimal() - JumlahTransfer).ToFormatHarga();

                            TransferBerhasil += "<br/>" + JumlahTransfer.ToFormatHarga() + " - " + stokBahanBaku.TBBahanBaku.Nama + " " + stokBahanBaku.TBBahanBaku.TBSatuan1.Nama; //MESSAGE TRANSFER YANG BERHASIL
                        }
                        else
                        {
                            //REFRESH LABEL JUMLAH STOK
                            LabelJumlah.Text = (stokBahanBaku.Jumlah / stokBahanBaku.TBBahanBaku.Konversi.Value).ToFormatHarga();
                            panelStok.Attributes.Add("class", "danger");

                            StokKurang = true;
                        }
                    }

                    //HANDLE POSTBACK FORMAT HARGA
                    TextBoxJumlahTransfer.Text = TextBoxJumlahTransfer.Text.ToDecimal() == 0 ? string.Empty : TextBoxJumlahTransfer.Text.ToFormatHarga();
                }

                if (DataTransferBahanBaku != null)
                {
                    //UPDATE DATA TRANSFER BAHAN BAKU
                    DataTransferBahanBaku.TanggalUpdate = DateTime.Now;
                    DataTransferBahanBaku.TotalJumlah   = DataTransferBahanBaku.TBTransferBahanBakuDetails.Sum(item2 => item2.Jumlah);
                    DataTransferBahanBaku.GrandTotal    = DataTransferBahanBaku.TBTransferBahanBakuDetails.Sum(item2 => item2.Jumlah * item2.HargaBeli);
                }

                db.SubmitChanges();
            }

            //MENAMPILKAN MESSAGE
            LiteralWarning.Text = string.Empty;

            if (!string.IsNullOrWhiteSpace(TransferBerhasil))
            {
                LiteralWarning.Text += Alert_Class.Pesan(TipeAlert.Success, "Bahan Baku berhasil disimpan" + TransferBerhasil);
            }

            if (StokKurang)
            {
                LiteralWarning.Text += Alert_Class.Pesan(TipeAlert.Danger, "Stok tidak cukup, silahkan cek kembali");
            }
        }
        catch (Exception ex)
        {
            LiteralWarning.Text = Alert_Class.Pesan(TipeAlert.Danger, ex.Message);
            LogError_Class LogError = new LogError_Class(ex, Request.Url.PathAndQuery);
        }
    }
Beispiel #2
0
    public void Proses()
    {
        Context.Response.Clear();
        Context.Response.ContentType = "application/json";

        try
        {
            using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
            {
                StoreKonfigurasi_Class StoreKonfigurasi_Class = new StoreKonfigurasi_Class();

                var StoreKonfigurasi = StoreKonfigurasi_Class.Cari(db, EnumStoreKonfigurasi.UrutanProsesTomahawk);

                var KonfigurasiTomahawk = db.TBKonfigurasiTomahawks.FirstOrDefault(item => item.Urutan == StoreKonfigurasi.Pengaturan.ToInt());

                #region MENYIMPAN KONFIGURASI URUTAN SELANJUTNYA
                var MaksimalUrutan = db.TBKonfigurasiTomahawks.Max(item => item.Urutan);

                if (StoreKonfigurasi.Pengaturan.ToInt() == MaksimalUrutan)
                {
                    StoreKonfigurasi_Class.UbahPengaturan(db, (int)EnumStoreKonfigurasi.UrutanProsesTomahawk, "1");
                }
                else
                {
                    StoreKonfigurasi_Class.UbahPengaturan(db, (int)EnumStoreKonfigurasi.UrutanProsesTomahawk, (StoreKonfigurasi.Pengaturan.ToInt() + 1).ToString());
                }

                db.SubmitChanges();
                #endregion

                if (KonfigurasiTomahawk != null)
                {
                    if ((DateTime.Now - KonfigurasiTomahawk.TanggalTerakhirProses).TotalMinutes > KonfigurasiTomahawk.DurasiProses)
                    {
                        switch (KonfigurasiTomahawk.Urutan)
                        {
                        case 1: Context.Response.Write(KirimEmail()); break;

                        case 2: Context.Response.Write(LaporanPenjualan()); break;

                        //case 3: Context.Response.Write(LaporanPOProduksi()); break;
                        case 4: Context.Response.Write(UpdateDiscountSelesai()); break;

                        case 5: Context.Response.Write(UpdateDiscountMulai()); break;

                        case 6: Context.Response.Write(GenerateStoreKey()); break;
                        }

                        var UpdateKonfigurasiTomahawk = db.TBKonfigurasiTomahawks.FirstOrDefault(item => item.Urutan == KonfigurasiTomahawk.Urutan);

                        UpdateKonfigurasiTomahawk.TanggalTerakhirProses = UpdateKonfigurasiTomahawk.TanggalTerakhirProses.AddMinutes(UpdateKonfigurasiTomahawk.DurasiProses);
                        db.SubmitChanges();
                    }
                    else
                    {
                        Context.Response.Write(JsonConvert.SerializeObject(new WebServiceResult
                        {
                            EnumWebService = (int)EnumWebService.NoAction,
                            Pesan          = "Tomahawk Up To Date"
                        }, Formatting.Indented));
                    }
                }
                else
                {
                    Context.Response.Write(JsonConvert.SerializeObject(new WebServiceResult
                    {
                        EnumWebService = (int)EnumWebService.NoAction,
                        Pesan          = "Konfigurasi Tomahawk Tidak Ditemukan"
                    }, Formatting.Indented));
                }
            }
        }
        catch (Exception ex)
        {
            LogError_Class Error = new LogError_Class(ex, "WebServiceTomahawk_Proses");

            Context.Response.Write(JsonConvert.SerializeObject(new WebServiceResult
            {
                EnumWebService = (int)EnumWebService.Exception,
                Pesan          = ex.Message
            }, Formatting.Indented));
        }
    }
Beispiel #3
0
    //CASE 2
    private string LaporanPenjualan()
    {
        try
        {
            string path           = Server.MapPath("/WITEmail/Laporan.html");
            Guid   IDWMSStore     = Guid.NewGuid();
            var    TanggalLaporan = DateTime.Now.AddDays(-1).Date;
            bool   IsSimpan       = false;

            using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
            {
                StoreKonfigurasi_Class StoreKonfigurasi_Class = new StoreKonfigurasi_Class();
                string Email = StoreKonfigurasi_Class.Cari(db, EnumStoreKonfigurasi.EmailReportSales).Pengaturan;

                foreach (var Tempat in db.TBTempats.ToArray())
                {
                    string Judul = "Laporan Penjualan " + Tempat.TBStore.Nama + " - " + Tempat.Nama + " " + TanggalLaporan.ToFormatTanggal();
                    string body  = "";

                    using (StreamReader reader = new StreamReader(path))
                    {
                        body = reader.ReadToEnd();
                    }

                    body = body.Replace("{Store}", Tempat.TBStore.Nama);
                    body = body.Replace("{Tempat}", Tempat.Nama);
                    body = body.Replace("{TanggalLaporan}", TanggalLaporan.ToFormatTanggal());

                    var ListTransaksi = db.TBTransaksis
                                        .AsEnumerable()
                                        .Where(item => item.IDTempat == Tempat.IDTempat &&
                                               item.IDStatusTransaksi == (int)EnumStatusTransaksi.Complete &&
                                               item.TanggalOperasional.Value.Date == TanggalLaporan).ToArray();

                    if (ListTransaksi.Count() > 0)
                    {
                        #region DATA
                        var ListTransaksiJenisPembayaran = db.TBTransaksiJenisPembayarans
                                                           .AsEnumerable()
                                                           .Where(item => item.TBTransaksi.IDTempat == Tempat.IDTempat &&
                                                                  item.TBTransaksi.IDStatusTransaksi == (int)EnumStatusTransaksi.Complete &&
                                                                  item.TBTransaksi.TanggalOperasional.Value.Date == TanggalLaporan).ToArray();

                        var ListTransaksiDetail = db.TBTransaksiDetails
                                                  .AsEnumerable()
                                                  .Where(item => item.TBTransaksi.IDTempat == Tempat.IDTempat &&
                                                         item.TBTransaksi.IDStatusTransaksi == (int)EnumStatusTransaksi.Complete &&
                                                         item.TBTransaksi.TanggalOperasional.Value.Date == TanggalLaporan)
                                                  .GroupBy(item => new
                        {
                            item.IDKombinasiProduk,
                            item.TBKombinasiProduk.Nama
                        })
                                                  .Select(item => new
                        {
                            item.Key,
                            Total = item.Sum(item2 => item2.Quantity)
                        })
                                                  .OrderByDescending(item => item.Total);

                        var TransaksiPerJam = ListTransaksi
                                              .GroupBy(item => item.TanggalTransaksi.Value.Hour)
                                              .Select(item => new
                        {
                            item.Key,
                            Total = item.Sum(item2 => item2.GrandTotal)
                        });

                        var ListPelanggan = ListTransaksi
                                            .GroupBy(item => new
                        {
                            item.IDPelanggan,
                            item.TBPelanggan.NamaLengkap
                        })
                                            .Select(item => new
                        {
                            item.Key,
                            Total = item.Sum(item2 => item2.GrandTotal)
                        });
                        #endregion

                        var HariIni = ListTransaksi.Sum(item => item.GrandTotal);

                        #region GROWTH HARIAN
                        body = body.Replace("{GrandTotal}", HariIni.ToFormatHarga());

                        var Kemarin = db.TBTransaksis
                                      .Where(item =>
                                             item.IDTempat == Tempat.IDTempat &&
                                             item.IDStatusTransaksi == (int)EnumStatusTransaksi.Complete &&
                                             item.TanggalOperasional.Value.Date == TanggalLaporan.Date.AddDays(-1)).Sum(item => item.GrandTotal);

                        //LAPORAN SALES KEMARIN
                        body = body.Replace("{KemarinKeterangan}", TanggalLaporan.Date.AddDays(-1).ToFormatTanggal());
                        body = body.Replace("{Kemarin}", Kemarin.ToFormatHarga());

                        if (Kemarin > 0)
                        {
                            var GrowthHarian = (HariIni - Kemarin) / Kemarin * 100;

                            if (GrowthHarian > 0)
                            {
                                body = body.Replace("{GrowthHarian}", "<td align=\"right\" colspan=\"1\" height=\"40\" rowspan=\"1\" width=\"275\" style=\"color:Green;\">&#9650;" + GrowthHarian.ToFormatHarga() + "%</td>");
                            }
                            else
                            {
                                body = body.Replace("{GrowthHarian}", "<td align=\"right\" colspan=\"1\" height=\"40\" rowspan=\"1\" width=\"275\" style=\"color:Red;\">&#9660;" + GrowthHarian.ToFormatHarga() + "%</td>");
                            }
                        }
                        else
                        {
                            body = body.Replace("{GrowthHarian}", "<td align=\"right\" colspan=\"1\" height=\"40\" rowspan=\"1\" width=\"275\"></td>");
                        }
                        #endregion

                        #region GROWTH BULANAN
                        var BulanIni = db.TBTransaksis
                                       .Where(item =>
                                              item.IDTempat == Tempat.IDTempat &&
                                              item.IDStatusTransaksi == (int)EnumStatusTransaksi.Complete &&
                                              item.TanggalOperasional.Value.Month == TanggalLaporan.Month).Sum(item => item.GrandTotal);

                        //LAPORAN SALES BULAN INI
                        body = body.Replace("{BulanIniKeterangan}", TanggalLaporan.ToString("MMMM"));
                        body = body.Replace("{BulanIni}", BulanIni.ToFormatHarga());

                        var BulanLalu = db.TBTransaksis
                                        .Where(item =>
                                               item.IDTempat == Tempat.IDTempat &&
                                               item.IDStatusTransaksi == (int)EnumStatusTransaksi.Complete &&
                                               item.TanggalOperasional.Value.Month == TanggalLaporan.AddMonths(-1).Month).Sum(item => item.GrandTotal);

                        if (BulanLalu > 0)
                        {
                            var GrowthBulanan = (BulanIni - BulanLalu) / BulanLalu * 100;

                            if (GrowthBulanan > 0)
                            {
                                body = body.Replace("{GrowthBulanan}", "<td align=\"right\" colspan=\"1\" height=\"40\" rowspan=\"1\" width=\"275\" style=\"color:Green;\">&#9650;" + GrowthBulanan.ToFormatHarga() + "%</td>");
                            }
                            else
                            {
                                body = body.Replace("{GrowthBulanan}", "<td align=\"right\" colspan=\"1\" height=\"40\" rowspan=\"1\" width=\"275\" style=\"color:Red;\">&#9660;" + GrowthBulanan.ToFormatHarga() + "%</td>");
                            }
                        }
                        else
                        {
                            body = body.Replace("{GrowthBulanan}", "<td align=\"right\" colspan=\"1\" height=\"40\" rowspan=\"1\" width=\"275\"></td>");
                        }
                        #endregion

                        #region GROWTH TAHUNAN
                        var TahunLalu = db.TBTransaksis
                                        .Where(item =>
                                               item.IDTempat == Tempat.IDTempat &&
                                               item.IDStatusTransaksi == (int)EnumStatusTransaksi.Complete &&
                                               item.TanggalOperasional.Value.Year == TanggalLaporan.AddYears(-1).Year)
                                        .Sum(item => item.GrandTotal);

                        var TahunIni = db.TBTransaksis
                                       .Where(item =>
                                              item.IDTempat == Tempat.IDTempat &&
                                              item.IDStatusTransaksi == (int)EnumStatusTransaksi.Complete &&
                                              item.TanggalOperasional.Value.Year == TanggalLaporan.Year)
                                       .Sum(item => item.GrandTotal);

                        if (TahunLalu > 0)
                        {
                            var GrowthTahunan = (TahunIni - TahunLalu) / TahunLalu * 100;

                            if (GrowthTahunan > 0)
                            {
                                body = body.Replace("{GrowthTahunan}", "<td align=\"right\" colspan=\"1\" height=\"40\" rowspan=\"1\" width=\"275\" style=\"color:Green;\">&#9650;" + GrowthTahunan.ToFormatHarga() + "%</td>");
                            }
                            else
                            {
                                body = body.Replace("{GrowthTahunan}", "<td align=\"right\" colspan=\"1\" height=\"40\" rowspan=\"1\" width=\"275\" style=\"color:Red;\">&#9660;" + GrowthTahunan.ToFormatHarga() + "%</td>");
                            }
                        }
                        else
                        {
                            body = body.Replace("{GrowthTahunan}", "<td align=\"right\" colspan=\"1\" height=\"40\" rowspan=\"1\" width=\"275\"></td>");
                        }
                        #endregion

                        body = body.Replace("{PenjualanItem}", ListTransaksi.Sum(item => item.Subtotal + item.TotalPotonganHargaJualDetail + item.PotonganTransaksi).ToFormatHargaBulat());
                        body = body.Replace("{Discount}", ListTransaksi.Sum(item => item.TotalPotonganHargaJualDetail + item.PotonganTransaksi).ToFormatHarga());
                        body = body.Replace("{Pembulatan}", ListTransaksi.Sum(item => item.Pembulatan).ToFormatHarga());

                        #region BIAYA TAMBAHAN
                        string LiteralBiayaTambahan = "";

                        var BiayaTambahan1 = ListTransaksi.Sum(item => item.BiayaTambahan1);

                        if (BiayaTambahan1 > 0)
                        {
                            LiteralBiayaTambahan += "<tr><td align='left' colspan='1' rowspan='1' width='275'>" + Tempat.KeteranganBiayaTambahan1 + "</td>";
                            LiteralBiayaTambahan += "<td align='right' colspan='1' height='40' rowspan='1' width='275'>" + BiayaTambahan1.ToFormatHarga() + "</td></tr><tr>";
                            LiteralBiayaTambahan += "<td colspan='2' height='1' rowspan='1' style='font-size: 0; line-height: 0; background-color: #EBECED;'>&nbsp;</td></tr>";
                        }

                        var BiayaTambahan2 = ListTransaksi.Sum(item => item.BiayaTambahan2);

                        if (BiayaTambahan2 > 0)
                        {
                            LiteralBiayaTambahan += "<tr><td align='left' colspan='1' rowspan='1' width='275'>" + Tempat.KeteranganBiayaTambahan2 + "</td>";
                            LiteralBiayaTambahan += "<td align='right' colspan='1' height='40' rowspan='1' width='275'>" + BiayaTambahan2.ToFormatHarga() + "</td></tr><tr>";
                            LiteralBiayaTambahan += "<td colspan='2' height='1' rowspan='1' style='font-size: 0; line-height: 0; background-color: #EBECED;'>&nbsp;</td></tr>";
                        }

                        var BiayaTambahan3 = ListTransaksi.Sum(item => item.BiayaTambahan3);

                        if (BiayaTambahan3 > 0)
                        {
                            LiteralBiayaTambahan += "<tr><td align='left' colspan='1' rowspan='1' width='275'>" + Tempat.KeteranganBiayaTambahan3 + "</td>";
                            LiteralBiayaTambahan += "<td align='right' colspan='1' height='40' rowspan='1' width='275'>" + BiayaTambahan3.ToFormatHarga() + "</td></tr><tr>";
                            LiteralBiayaTambahan += "<td colspan='2' height='1' rowspan='1' style='font-size: 0; line-height: 0; background-color: #EBECED;'>&nbsp;</td></tr>";
                        }

                        var BiayaTambahan4 = ListTransaksi.Sum(item => item.BiayaTambahan4);

                        if (BiayaTambahan4 > 0)
                        {
                            LiteralBiayaTambahan += "<tr><td align='left' colspan='1' rowspan='1' width='275'>" + Tempat.KeteranganBiayaTambahan4 + "</td>";
                            LiteralBiayaTambahan += "<td align='right' colspan='1' height='40' rowspan='1' width='275'>" + BiayaTambahan4.ToFormatHarga() + "</td></tr><tr>";
                            LiteralBiayaTambahan += "<td colspan='2' height='1' rowspan='1' style='font-size: 0; line-height: 0; background-color: #EBECED;'>&nbsp;</td></tr>";
                        }

                        body = body.Replace("{BiayaTambahan}", LiteralBiayaTambahan);
                        #endregion

                        #region JENIS PEMBAYARAN
                        string LiteralJenisPembayaran = "";

                        foreach (var item in db.TBJenisPembayarans.ToArray())
                        {
                            var Total = ListTransaksiJenisPembayaran
                                        .Where(item2 => item2.IDJenisPembayaran == item.IDJenisPembayaran)
                                        .Sum(item2 => item2.Total);

                            if (Total > 0)
                            {
                                LiteralJenisPembayaran += "<tr><td align='left' colspan='1' rowspan='1' width='275'>" + item.Nama + "</td>";
                                LiteralJenisPembayaran += "<td align='right' colspan='1' height='40' rowspan='1' width='275'>" + Total.ToFormatHarga() + "</td></tr><tr>";
                                LiteralJenisPembayaran += "<td colspan='2' height='1' rowspan='1' style='font-size: 0; line-height: 0; background-color: #EBECED;'>&nbsp;</td></tr>";
                            }
                        }

                        body = body.Replace("{JenisPembayaran}", LiteralJenisPembayaran);
                        #endregion

                        #region PELANGGAN
                        string LiteralPelanggan = "";

                        foreach (var item in ListPelanggan.OrderByDescending(item2 => item2.Total))
                        {
                            LiteralPelanggan += "<tr><td align='left' colspan='1' rowspan='1' width='275'>" + item.Key.NamaLengkap + "</td>";
                            LiteralPelanggan += "<td align='right' colspan='1' height='40' rowspan='1' width='275'>" + item.Total.ToFormatHarga() + "</td></tr><tr>";
                            LiteralPelanggan += "<td colspan='2' height='1' rowspan='1' style='font-size: 0; line-height: 0; background-color: #EBECED;'>&nbsp;</td></tr>";
                        }

                        body = body.Replace("{Pelanggan}", LiteralPelanggan);
                        #endregion

                        #region LAPORAN PER JAM
                        string LiteralLaporanPerJam = "";

                        foreach (var item in TransaksiPerJam.OrderBy(item => item.Key))
                        {
                            LiteralLaporanPerJam += "<tr><td colspan='1' rowspan='1' width='80'><table bgcolor='#f0f0f0' border='0' cellpadding='0' cellspacing='0' width='100%'>";
                            LiteralLaporanPerJam += "<tr><td align='left' colspan='1' height='42' rowspan='1' style='font-family: Verdana; font-size: 14px; line-height: 18px; font-weight: 600; color: rgb(61, 69, 76); white-space: nowrap; padding: 0 15px;' width='100%'>" + item.Key + ":00</td></tr></table></td>";
                            LiteralLaporanPerJam += "<td align='left' bgcolor='#FFFFFF' colspan='1' rowspan='1' width='500'>";
                            LiteralLaporanPerJam += "<table bgcolor='#f0f0f0' border='0' cellpadding='0' cellspacing='0' width='100%'><tr>";
                            LiteralLaporanPerJam += "<td align='right' colspan='1' height='42' rowspan='1' style='font-family: Verdana; font-size: 14px; line-height: 18px; font-weight: 600; color: rgb(61, 69, 76); white-space: nowrap; padding: 0 15px;' width='100%'>" + item.Total.ToFormatHarga() + "</td></tr></table></td></tr><tr>";
                            LiteralLaporanPerJam += "<td bgcolor='#FFFFFF' colspan='2' height='1' rowspan='1' style='font-size: 0; line-height: 0;'>&nbsp;</td></tr>";
                        }

                        body = body.Replace("{LaporanPerJam}", LiteralLaporanPerJam);
                        #endregion

                        #region TOP ITEM
                        string LiteralTopItem = "";

                        foreach (var item in ListTransaksiDetail)
                        {
                            LiteralTopItem += "<tr><td align='left' colspan='1' rowspan='1' width='275'>" + item.Key.Nama + "</td>";
                            LiteralTopItem += "<td align='right' colspan='1' height='40' rowspan='1' width='275'>" + item.Total.ToFormatHargaBulat() + "</td></tr><tr>";
                            LiteralTopItem += "<td colspan='2' height='1' rowspan='1' style='font-size: 0; line-height: 0; background-color: #EBECED;'>&nbsp;</td></tr>";
                        }

                        body = body.Replace("{TopItem}", LiteralTopItem);
                        body = body.Replace("{TotalItem}", ListTransaksi.Sum(item => item.JumlahProduk).ToFormatHargaBulat());
                        #endregion

                        #region KIRIM EMAIL
                        foreach (var item in Email.Replace(" ", "").Split(','))
                        {
                            IsSimpan = true;

                            db.TBPengirimanEmails.InsertOnSubmit(new TBPengirimanEmail
                            {
                                Judul        = Judul,
                                TanggalKirim = DateTime.Now,
                                Tujuan       = item,
                                Isi          = body.Replace("{Logo}", "<img src='" + "http://wit.systems/Logo.aspx?IDWMSStore=" + IDWMSStore + "&IDWMSEmail=" + Guid.NewGuid() + "&EmailPenerima=" + item + "&Judul=" + Judul + "' height=\"35\" />")
                            });
                        }
                        #endregion
                    }
                }

                if (IsSimpan)
                {
                    db.SubmitChanges();
                }
            }

            if (IsSimpan)
            {
                return(JsonConvert.SerializeObject(new WebServiceResult
                {
                    EnumWebService = (int)EnumWebService.Success,
                    Pesan = "[BERHASIL GENERATE] Laporan Penjualan " + TanggalLaporan.ToFormatTanggalHari() + " berhasil digenerate",
                }, Formatting.Indented));
            }
            else
            {
                return(JsonConvert.SerializeObject(new WebServiceResult
                {
                    EnumWebService = (int)EnumWebService.NoAction,
                    Pesan = "Tidak ada Laporan Penjualan " + TanggalLaporan.ToFormatTanggalHari(),
                }, Formatting.Indented));
            }
        }
        catch (Exception ex)
        {
            LogError_Class Error = new LogError_Class(ex, "WebServiceTomahawk_LaporanPenjualan");

            return(JsonConvert.SerializeObject(new WebServiceResult
            {
                EnumWebService = (int)EnumWebService.Exception,
                Pesan = ex.Message
            }, Formatting.Indented));
        }
    }
Beispiel #4
0
    protected void ButtonTerima_Click(object sender, EventArgs e)
    {
        peringatan.Visible = false;
        bool          statusBerhasil = false;
        PenggunaLogin pengguna       = (PenggunaLogin)Session["PenggunaLogin"];
        string        IDPenerimaanPOProduksiBahanBaku = string.Empty;
        string        IDTransferBahanBaku             = string.Empty;
        TBPenerimaanPOProduksiBahanBaku penerimaan    = null;

        try
        {
            using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
            {
                TBPOProduksiBahanBaku poProduksiBahanBaku = db.TBPOProduksiBahanBakus.FirstOrDefault(item => item.IDPOProduksiBahanBaku == DropDownListIDPOProduksi.SelectedValue);

                bool penerimaanSesuai = true;

                EntitySet <TBPenerimaanPOProduksiBahanBakuDetail> daftarDetail = new EntitySet <TBPenerimaanPOProduksiBahanBakuDetail>();

                int baris = 0;

                foreach (RepeaterItem item in RepeaterDetail.Items)
                {
                    baris++;

                    Label   LabelIDBahanBaku             = (Label)item.FindControl("LabelIDBahanBaku");
                    TextBox TextBoxSisaPesanan           = (TextBox)item.FindControl("TextBoxSisaPesanan");
                    TextBox TextBoxJumlahDatang          = (TextBox)item.FindControl("TextBoxJumlahDatang");
                    TextBox TextBoxJumlahTerima          = (TextBox)item.FindControl("TextBoxJumlahTerima");
                    TextBox TextBoxJumlahTolakKeSupplier = (TextBox)item.FindControl("TextBoxJumlahTolakKeSupplier");

                    if (TextBoxJumlahDatang.Text.ToDecimal() > 0)
                    {
                        if (TextBoxJumlahDatang.Text.ToDecimal() >= TextBoxJumlahTerima.Text.ToDecimal())
                        {
                            TBPOProduksiBahanBakuDetail poProduksiBahanBakuDetail = poProduksiBahanBaku.TBPOProduksiBahanBakuDetails.FirstOrDefault(data => data.IDBahanBaku == LabelIDBahanBaku.Text.ToInt());

                            daftarDetail.Add(new TBPenerimaanPOProduksiBahanBakuDetail()
                            {
                                TBBahanBaku           = poProduksiBahanBakuDetail.TBBahanBaku,
                                TBSatuan              = poProduksiBahanBakuDetail.TBSatuan,
                                BiayaTambahan         = poProduksiBahanBakuDetail.BiayaTambahan,
                                HargaPokokKomposisi   = poProduksiBahanBakuDetail.HargaPokokKomposisi,
                                TotalHPP              = poProduksiBahanBakuDetail.TotalHPP,
                                HargaSupplier         = poProduksiBahanBakuDetail.HargaSupplier,
                                PotonganHargaSupplier = poProduksiBahanBakuDetail.PotonganHargaSupplier,
                                TotalHargaSupplier    = poProduksiBahanBakuDetail.TotalHargaSupplier,
                                Datang          = TextBoxJumlahDatang.Text.ToDecimal(),
                                Diterima        = TextBoxJumlahTerima.Text.ToDecimal(),
                                TolakKeSupplier = TextBoxJumlahTolakKeSupplier.Text.ToDecimal(),
                                Sisa            = TextBoxJumlahTerima.Text.ToDecimal() <= TextBoxSisaPesanan.Text.ToDecimal() ? TextBoxSisaPesanan.Text.ToDecimal() - TextBoxJumlahTerima.Text.ToDecimal() : 0
                            });
                        }
                        else
                        {
                            LabelPeringatan.Text = "Jumlah diterima lebih besar dari jumlah datang, baris ke-" + baris.ToString();
                            peringatan.Visible   = true;
                            penerimaanSesuai     = false;
                            break;
                        }
                    }
                }

                if (penerimaanSesuai == true)
                {
                    TBStokBahanBaku[] daftarStokBahanBaku = db.TBStokBahanBakus.Where(item => item.IDTempat == pengguna.IDTempat).ToArray();

                    db.Proc_InsertPenerimaanPOProduksiBahanBaku(ref IDPenerimaanPOProduksiBahanBaku, poProduksiBahanBaku.IDPOProduksiBahanBaku, poProduksiBahanBaku.IDSupplier, pengguna.IDTempat, pengguna.IDPengguna, DateTime.Parse(TextBoxTanggalPenerimaan.Text).AddHours(DateTime.Now.Hour).AddMinutes(DateTime.Now.Minute));

                    penerimaan = db.TBPenerimaanPOProduksiBahanBakus.FirstOrDefault(item => item.IDPenerimaanPOProduksiBahanBaku == IDPenerimaanPOProduksiBahanBaku);

                    penerimaan.IDPenggunaTerima = penerimaan.IDPenggunaDatang;
                    penerimaan.TanggalTerima    = penerimaan.TanggalDatang;
                    penerimaan.TBPenerimaanPOProduksiBahanBakuDetails = daftarDetail;
                    penerimaan.TotalDatang                = penerimaan.TBPenerimaanPOProduksiBahanBakuDetails.Sum(item => item.Datang);
                    penerimaan.TotalDiterima              = penerimaan.TBPenerimaanPOProduksiBahanBakuDetails.Sum(item => item.Diterima);
                    penerimaan.TotalTolakKeSupplier       = penerimaan.TBPenerimaanPOProduksiBahanBakuDetails.Sum(item => item.TolakKeSupplier);
                    penerimaan.TotalSisa                  = penerimaan.TBPenerimaanPOProduksiBahanBakuDetails.Sum(item => item.Sisa);
                    penerimaan.SubtotalBiayaTambahan      = penerimaan.TBPenerimaanPOProduksiBahanBakuDetails.Sum(item => item.BiayaTambahan * item.Diterima);
                    penerimaan.SubtotalTotalHPP           = penerimaan.TBPenerimaanPOProduksiBahanBakuDetails.Sum(item => item.TotalHPP * item.Diterima);
                    penerimaan.SubtotalTotalHargaSupplier = penerimaan.TBPenerimaanPOProduksiBahanBakuDetails.Sum(item => item.TotalHargaSupplier * item.Diterima);
                    penerimaan.Grandtotal                 = penerimaan.SubtotalTotalHPP + penerimaan.SubtotalTotalHargaSupplier;
                    penerimaan.EnumStatusPenerimaan       = (int)PilihanEnumStatusPenerimaanPO.Terima;
                    penerimaan.Keterangan                 = TextBoxKeterangan.Text;

                    foreach (var item in penerimaan.TBPenerimaanPOProduksiBahanBakuDetails)
                    {
                        TBPOProduksiBahanBakuDetail poProduksiBahanBakuDetail = poProduksiBahanBaku.TBPOProduksiBahanBakuDetails.FirstOrDefault(data => data.IDBahanBaku == item.IDBahanBaku);
                        poProduksiBahanBakuDetail.Sisa = item.Sisa;

                        TBStokBahanBaku stokBahanBaku = daftarStokBahanBaku.FirstOrDefault(data => data.IDBahanBaku == item.IDBahanBaku);

                        StokBahanBaku_Class.PengaturanJumlahStokPenerimaanPOBahanBaku(db, penerimaan.TanggalTerima.Value, pengguna.IDPengguna, pengguna.IDTempat, stokBahanBaku, item.TotalHargaSupplier, item.TBSatuan, item.Datang, item.TolakKeSupplier, item.TBPenerimaanPOProduksiBahanBaku.TBPOProduksiBahanBaku.IDPOProduksiBahanBaku + " - #" + item.TBPenerimaanPOProduksiBahanBaku.IDPenerimaanPOProduksiBahanBaku);
                    }

                    poProduksiBahanBaku.TBPenerimaanPOProduksiBahanBakus.Add(penerimaan);

                    db.SubmitChanges();

                    statusBerhasil = true;
                }
                else
                {
                    peringatan.Visible = true;
                }
            }
        }
        catch (Exception ex)
        {
            if (statusBerhasil != true)
            {
                using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
                {
                    penerimaan = db.TBPenerimaanPOProduksiBahanBakus.FirstOrDefault(item => item.IDPenerimaanPOProduksiBahanBaku == IDPenerimaanPOProduksiBahanBaku);
                    if (penerimaan != null)
                    {
                        db.TBPenerimaanPOProduksiBahanBakuDetails.DeleteAllOnSubmit(penerimaan.TBPenerimaanPOProduksiBahanBakuDetails);
                        db.TBPenerimaanPOProduksiBahanBakus.DeleteOnSubmit(penerimaan);
                        db.SubmitChanges();

                        IDPenerimaanPOProduksiBahanBaku = string.Empty;
                    }
                }
            }
            LogError_Class LogError = new LogError_Class(ex, "Penerimaan Purchase Order Bahan Baku (ButtonSimpan_Click by : " + pengguna.NamaLengkap + ")");
            LabelPeringatan.Text = "Terjadi kesalahan, silahkan cek kembali data yang diinputkan";
            peringatan.Visible   = true;
        }
        finally
        {
            if (statusBerhasil == true)
            {
                Response.Redirect("Default.aspx");
            }
        }
    }
Beispiel #5
0
    protected void ButtonSimpan_Click(object sender, EventArgs e)
    {
        peringatan.Visible = false;
        bool   statusBerhasil = false;
        string IDPengirimanPOProduksiProduk     = string.Empty;
        TBPengirimanPOProduksiProduk pengiriman = null;
        PenggunaLogin pengguna = (PenggunaLogin)Session["PenggunaLogin"];

        try
        {
            using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
            {
                bool pengirimanSesuai = true;
                int  baris            = 0;

                TBPOProduksiProduk poProduksiProduk = db.TBPOProduksiProduks.FirstOrDefault(item => item.IDPOProduksiProduk == Request.QueryString["id"]);

                EntitySet <TBPengirimanPOProduksiProdukDetail> daftarKomposisi = new EntitySet <TBPengirimanPOProduksiProdukDetail>();

                foreach (RepeaterItem item in RepeaterKomposisi.Items)
                {
                    baris++;

                    Label   LabelIDBahanBaku = (Label)item.FindControl("LabelIDBahanBaku");
                    TextBox TextBoxSisa      = (TextBox)item.FindControl("TextBoxSisa");
                    TextBox TextBoxStok      = (TextBox)item.FindControl("TextBoxStok");
                    TextBox TextBoxKirim     = (TextBox)item.FindControl("TextBoxKirim");

                    if (TextBoxKirim.Text.ToDecimal() > 0)
                    {
                        if (TextBoxKirim.Text.ToDecimal() <= TextBoxStok.Text.ToDecimal())
                        {
                            if (TextBoxKirim.Text.ToDecimal() <= TextBoxSisa.Text.ToDecimal())
                            {
                                TBPOProduksiProdukKomposisi poProduksiKomposisiKomposisi = poProduksiProduk.TBPOProduksiProdukKomposisis.FirstOrDefault(data => data.IDBahanBaku == LabelIDBahanBaku.Text.ToInt());

                                daftarKomposisi.Add(new TBPengirimanPOProduksiProdukDetail()
                                {
                                    TBBahanBaku = poProduksiKomposisiKomposisi.TBBahanBaku,
                                    TBSatuan    = poProduksiKomposisiKomposisi.TBSatuan,
                                    Kirim       = TextBoxKirim.Text.ToDecimal()
                                });
                            }
                            else
                            {
                                LabelPeringatan.Text = "Jumlah kirim lebih besar dari jumlah kebutuhan, baris ke-" + baris.ToString();
                                peringatan.Visible   = true;
                                pengirimanSesuai     = false;
                                break;
                            }
                        }
                        else
                        {
                            LabelPeringatan.Text = "Jumlah kirim lebih besar dari stok, baris ke-" + baris.ToString();
                            peringatan.Visible   = true;
                            pengirimanSesuai     = false;
                            break;
                        }
                    }
                }

                if (pengirimanSesuai == true)
                {
                    if (daftarKomposisi.Count > 0)
                    {
                        TBStokBahanBaku[] daftarStokBahanBaku = db.TBStokBahanBakus.Where(item => item.IDTempat == pengguna.IDTempat).ToArray();

                        db.Proc_InsertPengirimanPOProduksiProduk(ref IDPengirimanPOProduksiProduk, poProduksiProduk.IDPOProduksiProduk, poProduksiProduk.IDVendor, pengguna.IDTempat, pengguna.IDPengguna, TextBoxTanggalProses.Text.ToDateTime().AddHours(DateTime.Now.Hour).AddMinutes(DateTime.Now.Minute));

                        pengiriman = db.TBPengirimanPOProduksiProduks.FirstOrDefault(item => item.IDPengirimanPOProduksiProduk == IDPengirimanPOProduksiProduk);

                        foreach (var item in daftarKomposisi)
                        {
                            TBStokBahanBaku stokBahanBaku = daftarStokBahanBaku.FirstOrDefault(data => data.IDBahanBaku == item.IDBahanBaku);

                            StokBahanBaku_Class.UpdateBertambahBerkurang(db, DateTime.Now, pengguna.IDPengguna, stokBahanBaku, item.Kirim, stokBahanBaku.HargaBeli.Value, false, EnumJenisPerpindahanStok.PenguranganProduksi, "Production to Vendor #" + poProduksiProduk.IDPOProduksiProduk);

                            TBPOProduksiProdukKomposisi poProduksiProdukomposisi = poProduksiProduk.TBPOProduksiProdukKomposisis.FirstOrDefault(data => data.IDBahanBaku == item.IDBahanBaku);
                            item.HargaBeli = poProduksiProdukomposisi.HargaBeli;
                            poProduksiProdukomposisi.Kirim = poProduksiProdukomposisi.Kirim + item.Kirim;
                            poProduksiProdukomposisi.Sisa  = poProduksiProdukomposisi.Sisa - item.Kirim;
                        }
                        pengiriman.TBPengirimanPOProduksiProdukDetails = daftarKomposisi;
                        pengiriman.Grandtotal = pengiriman.TBPengirimanPOProduksiProdukDetails.Sum(item => (item.Kirim * item.HargaBeli));
                        pengiriman.Keterangan = null;

                        db.SubmitChanges();

                        statusBerhasil = true;
                    }
                    else
                    {
                        LabelPeringatan.Text = "Tidak ada bahan baku yang dikirim";
                        peringatan.Visible   = true;
                        pengirimanSesuai     = false;
                    }
                }
            }
        }
        catch (Exception ex)
        {
            if (statusBerhasil != true)
            {
                using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
                {
                    pengiriman = db.TBPengirimanPOProduksiProduks.FirstOrDefault(item => item.IDPengirimanPOProduksiProduk == IDPengirimanPOProduksiProduk);
                    if (pengiriman != null)
                    {
                        db.TBPengirimanPOProduksiProdukDetails.DeleteAllOnSubmit(pengiriman.TBPengirimanPOProduksiProdukDetails);
                        db.TBPengirimanPOProduksiProduks.DeleteOnSubmit(pengiriman);
                        db.SubmitChanges();

                        IDPengirimanPOProduksiProduk = string.Empty;
                    }
                }
            }
            LogError_Class LogError = new LogError_Class(ex, "Penerimaan Produksi Ke Vendor (ButtonSimpan_Click by : " + pengguna.NamaLengkap + ")");
            LabelPeringatan.Text = "Terjadi kesalahan, silahkan cek kembali data yang diinputkan";
            peringatan.Visible   = true;
        }
        finally
        {
            if (statusBerhasil == true)
            {
                Response.Redirect("Default.aspx");
            }
        }
    }
Beispiel #6
0
    protected void ButtonSimpan_Click(object sender, EventArgs e)
    {
        try
        {
            //STATUS STOK KURANG ATAU TIDAK
            bool StokKurang = false;

            int    TotalTransfer  = 0;
            string PesanTransaksi = "";

            //MENAMPILKAN MESSAGE
            LiteralWarning.Text = "";

            using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
            {
                PenggunaLogin    Pengguna         = (PenggunaLogin)Session["PenggunaLogin"];
                StokProduk_Class StokProduk_Class = new StokProduk_Class(db);
                Transaksi_Class  Transaksi;

                //CLASS TRANSAKSI
                if (string.IsNullOrWhiteSpace(LabelIDTransaksi.Text))
                {
                    //MEMBUAT TRANSAKSI BARU
                    Transaksi = new Transaksi_Class(Pengguna.IDPengguna, Pengguna.IDTempat, DateTime.Now);

                    //3 : WHOLESALE
                    Transaksi.IDJenisTransaksi = 3;
                }
                else
                {
                    Transaksi = new Transaksi_Class(LabelIDTransaksi.Text, Pengguna.IDPengguna);
                }

                foreach (RepeaterItem item in RepeaterStokKombinasiProduk.Items)
                {
                    Label        LabelIDKombinasiProduk = (Label)item.FindControl("LabelIDKombinasiProduk");
                    Label        LabelJumlah            = (Label)item.FindControl("LabelJumlah");
                    TextBox      TextBoxJumlahTransaksi = (TextBox)item.FindControl("TextBoxJumlahTransaksi");
                    HtmlTableRow PanelStok       = (HtmlTableRow)item.FindControl("PanelStok");
                    int          JumlahTransaksi = (int)Pengaturan.FormatAngkaInput(TextBoxJumlahTransaksi);

                    if (JumlahTransaksi > 0)
                    {
                        //JIKA JUMLAH TRANSAKSI VALID TIDAK NULL DAN TIDAK 0

                        //PENCARIAN STOK PRODUK
                        var StokProduk = StokProduk_Class.Cari(Pengguna.IDTempat, LabelIDKombinasiProduk.Text.ToInt());

                        if (JumlahTransaksi <= StokProduk.Jumlah)
                        {
                            //JIKA JUMLAH YANG AKAN DI TRANSAKSI LEBIH KECIL ATAU SAMA DENGAN JUMLAH STOK

                            //APAKAH SUDAH ADA DI DETAIL
                            var TransaksiDetail = Transaksi.Detail.FirstOrDefault(item2 => item2.IDKombinasiProduk == LabelIDKombinasiProduk.Text.ToInt());

                            if (TransaksiDetail == null)
                            {
                                Transaksi.TambahDetailTransaksi(LabelIDKombinasiProduk.Text.ToInt(), JumlahTransaksi);
                            }
                            else
                            {
                                Transaksi.TambahKurangJumlahProduk(TransaksiDetail.IDDetailTransaksi, JumlahTransaksi);
                            }

                            //MENGKOSONGKAN TEXTBOX - LABEL JUMLAH DIISI DENGAN JUMLAH STOK TERBARU
                            TextBoxJumlahTransaksi.Text = "";
                            PanelStok.Attributes.Add("class", "");
                            LabelJumlah.Text          = Pengaturan.FormatHarga(Pengaturan.FormatAngkaInput(LabelJumlah.Text) - JumlahTransaksi);
                            LabelTotalJumlahStok.Text = Pengaturan.FormatHarga(Pengaturan.FormatAngkaInput(LabelTotalJumlahStok.Text) - JumlahTransaksi);

                            //MESSAGE TRANSFER YANG BERHASIL
                            TotalTransfer  += JumlahTransaksi;
                            PesanTransaksi += "<br/>" + Pengaturan.FormatHarga(JumlahTransaksi) + " - " + StokProduk.TBKombinasiProduk.Nama;
                        }
                        else
                        {
                            //REFRESH LABEL JUMLAH STOK
                            LabelTotalJumlahStok.Text = Pengaturan.FormatHarga(Pengaturan.FormatAngkaInput(LabelTotalJumlahStok.Text) - (Pengaturan.FormatAngkaInput(LabelJumlah.Text) - StokProduk.Jumlah));
                            LabelJumlah.Text          = Pengaturan.FormatHarga(StokProduk.Jumlah);
                            PanelStok.Attributes.Add("class", "danger");

                            StokKurang = true;
                        }
                    }

                    //HANDLE POSTBACK FORMAT HARGA
                    TextBoxJumlahTransaksi.Text = Pengaturan.FormatAngkaInput(TextBoxJumlahTransaksi.Text) == 0 ? "" : Pengaturan.FormatAngkaInput(TextBoxJumlahTransaksi.Text).ToString();
                }

                if (TotalTransfer > 0)
                {
                    LabelIDTransaksi.Text = Transaksi.ConfirmTransaksi(db);
                    db.SubmitChanges();
                }
            }

            if (TotalTransfer > 0)
            {
                PesanTransaksi      += "<br/><h5><b>Total : " + TotalTransfer + "</b></h5>";
                LiteralWarning.Text += Alert_Class.Pesan(TipeAlert.Success, "Produk berhasil disimpan" + PesanTransaksi);
            }

            if (StokKurang)
            {
                LiteralWarning.Text += Alert_Class.Pesan(TipeAlert.Danger, "Stok tidak cukup, silahkan cek kembali");
            }
        }
        catch (Exception ex)
        {
            LiteralWarning.Text = Alert_Class.Pesan(TipeAlert.Danger, ex.Message);
            LogError_Class LogError = new LogError_Class(ex, Request.Url.PathAndQuery);
        }
    }
Beispiel #7
0
    protected void ButtonSimpan_Click(object sender, EventArgs e)
    {
        using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
        {
            peringatan.Visible = false;
            PenggunaLogin pengguna       = (PenggunaLogin)Session["PenggunaLogin"];
            bool          statusBerhasil = false;

            try
            {
                if (TextBoxTotalSisaTagihan.Text.ToDecimal() >= TextBoxBayar.Text.ToDecimal())
                {
                    TBPOProduksiProdukPenagihan produksiProdukPenagihan = db.TBPOProduksiProdukPenagihans.FirstOrDefault(item => item.IDPOProduksiProdukPenagihan == Request.QueryString["id"]);

                    produksiProdukPenagihan.TBPOProduksiProdukPenagihanDetails.Add(new TBPOProduksiProdukPenagihanDetail
                    {
                        IDPengguna        = pengguna.IDPengguna,
                        Tanggal           = TextBoxTanggalBayar.Text.ToDateTime(),
                        IDJenisPembayaran = DropDownListJenisPembayaran.SelectedValue.ToInt(),
                        Bayar             = TextBoxBayar.Text.ToDecimal()
                    });
                    produksiProdukPenagihan.TotalBayar       = produksiProdukPenagihan.TBPOProduksiProdukPenagihanDetails.Sum(item => item.Bayar);
                    produksiProdukPenagihan.StatusPembayaran = produksiProdukPenagihan.TotalTagihan == produksiProdukPenagihan.TotalBayar ? true : false;
                    produksiProdukPenagihan.Keterangan       = TextBoxKeterangan.Text;

                    foreach (var item in produksiProdukPenagihan.TBPOProduksiProdukReturs)
                    {
                        item.EnumStatusRetur = (int)EnumStatusPORetur.Selesai;
                    }


                    #region Arie, Input Jurnal Pembayaran Hutang PO
                    //var KonfigurasiAkun = db.TBKonfigurasiAkuns.Where(item => item.IDTempat == 1);
                    //TBJurnal Jurnal = new TBJurnal
                    //{
                    //    IDTempat = 1,
                    //    Tanggal = TextBoxTanggalBayar.Text.ToDateTime(),
                    //    Keterangan = TextBoxKeterangan.Text,
                    //    IDPengguna = pengguna.IDPengguna,
                    //    Referensi = produksiProdukPenagihan.IDPOProduksiProdukPenagihan
                    //};

                    //#region JURNAL
                    ////DEBIT     : PERSEDIAAN
                    ////KREDIT    : HUTANG DAGANG
                    ////KAS
                    //Jurnal.TBJurnalDetails.Add(new TBJurnalDetail
                    //{
                    //    IDAkun = KonfigurasiAkun.FirstOrDefault(item => item.Nama == produksiProdukPenagihan.IDJenisPembayaran.ToString()).IDAkun,
                    //    Debit = 0,
                    //    Kredit = produksiProdukPenagihan.Grandtotal
                    //});
                    ////HUTANG DAGANG
                    //Jurnal.TBJurnalDetails.Add(new TBJurnalDetail
                    //{
                    //    IDAkun = KonfigurasiAkun.FirstOrDefault(item => item.Nama == "HUTANG DAGANG").IDAkun,
                    //    Debit = produksiProdukPenagihan.Grandtotal,
                    //    Kredit = 0
                    //});
                    //db.TBJurnals.InsertOnSubmit(Jurnal);
                    //#endregion
                    #endregion

                    db.SubmitChanges();

                    statusBerhasil = true;
                }
                else
                {
                    LabelPeringatan.Text = "Total Bayar harus lebih kecil dari sisa tagihan";
                    peringatan.Visible   = true;
                }
            }
            catch (Exception ex)
            {
                LogError_Class LogError = new LogError_Class(ex, "Bayar Penagihan (ButtonSimpan_Click by : " + pengguna.NamaLengkap + ")");
            }
            finally
            {
                if (statusBerhasil == true)
                {
                    Response.Redirect("Default.aspx");
                }
            }
        }
    }
Beispiel #8
0
    protected void ButtonSimpan_Click(object sender, EventArgs e)
    {
        if (Page.IsValid)
        {
            peringatan.Visible = false;
            PenggunaLogin pengguna = (PenggunaLogin)Session["PenggunaLogin"];

            string IDPOProduksiBahanBakuPenagihan = string.Empty;
            TBPOProduksiBahanBakuPenagihan produksiBahanBakuPenagihan = null;
            bool statusBerhasil = false;

            try
            {
                using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
                {
                    db.Proc_InsertPOProduksiBahanBakuPenagihan(ref IDPOProduksiBahanBakuPenagihan, DropDownListSupplier.SelectedValue.ToInt(), pengguna.IDTempat, pengguna.IDPengguna, TextBoxTanggal.Text.ToDateTime().AddHours(DateTime.Now.Hour).AddMinutes(DateTime.Now.Minute));

                    produksiBahanBakuPenagihan = db.TBPOProduksiBahanBakuPenagihans.FirstOrDefault(item => item.IDPOProduksiBahanBakuPenagihan == IDPOProduksiBahanBakuPenagihan);

                    foreach (RepeaterItem item in RepeaterDetailPenerimaan.Items)
                    {
                        CheckBox CheckBoxPilihPenerimaan = (CheckBox)item.FindControl("CheckBoxPilihPenerimaan");
                        Label    LabelIDPenerimaanPOProduksiBahanBaku = (Label)item.FindControl("LabelIDPenerimaanPOProduksiBahanBaku");

                        if (CheckBoxPilihPenerimaan.Checked == true)
                        {
                            TBPenerimaanPOProduksiBahanBaku penerimaanPOProduksiBahanBaku = db.TBPenerimaanPOProduksiBahanBakus.FirstOrDefault(item2 => item2.IDPenerimaanPOProduksiBahanBaku == LabelIDPenerimaanPOProduksiBahanBaku.Text);
                            penerimaanPOProduksiBahanBaku.TBPOProduksiBahanBakuPenagihan = produksiBahanBakuPenagihan;
                        }
                    }

                    foreach (RepeaterItem item in RepeaterRetur.Items)
                    {
                        CheckBox CheckBoxPilihRetur = (CheckBox)item.FindControl("CheckBoxPilihRetur");
                        Label    LabelIDPOProduksiBahanBakuRetur = (Label)item.FindControl("LabelIDPOProduksiBahanBakuRetur");

                        if (CheckBoxPilihRetur.Checked == true)
                        {
                            TBPOProduksiBahanBakuRetur POProduksiBahanBakuRetur = db.TBPOProduksiBahanBakuReturs.FirstOrDefault(item2 => item2.IDPOProduksiBahanBakuRetur == LabelIDPOProduksiBahanBakuRetur.Text);
                            POProduksiBahanBakuRetur.TBPOProduksiBahanBakuPenagihan = produksiBahanBakuPenagihan;
                            POProduksiBahanBakuRetur.EnumStatusRetur = (int)EnumStatusPORetur.Proses;
                        }
                    }

                    foreach (RepeaterItem item in RepeaterDownPayment.Items)
                    {
                        Label LabelIDPOProduksiBahanBaku = (Label)item.FindControl("LabelIDPOProduksiBahanBaku");

                        TBPOProduksiBahanBaku POProduksiBahanBaku = db.TBPOProduksiBahanBakus.FirstOrDefault(item2 => item2.IDPOProduksiBahanBaku == LabelIDPOProduksiBahanBaku.Text);
                        POProduksiBahanBaku.TBPOProduksiBahanBakuPenagihan = produksiBahanBakuPenagihan;
                    }

                    produksiBahanBakuPenagihan.TotalPenerimaan  = LabelTotalPenerimaan.Text.ToDecimal();
                    produksiBahanBakuPenagihan.TotalRetur       = LabelTotalRetur.Text.ToDecimal();
                    produksiBahanBakuPenagihan.TotalDownPayment = LabelTotalDownPayment.Text.ToDecimal();
                    produksiBahanBakuPenagihan.TotalBayar       = 0;
                    produksiBahanBakuPenagihan.StatusPembayaran = false;
                    produksiBahanBakuPenagihan.Keterangan       = TextBoxKeterangan.Text;

                    if (TextBoxTotalPenagihan.Text.ToDecimal() > 0)
                    {
                        db.SubmitChanges();
                        statusBerhasil = true;
                    }
                    else
                    {
                        db.TBPOProduksiBahanBakuPenagihans.DeleteOnSubmit(produksiBahanBakuPenagihan);

                        LabelPeringatan.Text = "Total tagihan dibawah 0";
                        peringatan.Visible   = true;
                    }
                }
            }
            catch (Exception ex)
            {
                if (statusBerhasil != true)
                {
                    using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
                    {
                        produksiBahanBakuPenagihan = db.TBPOProduksiBahanBakuPenagihans.FirstOrDefault(item => item.IDPOProduksiBahanBakuPenagihan == IDPOProduksiBahanBakuPenagihan);
                        if (produksiBahanBakuPenagihan != null)
                        {
                            produksiBahanBakuPenagihan.TBPenerimaanPOProduksiBahanBakus.ToList().ForEach(item => item.IDPOProduksiBahanBakuPenagihan = null);
                            db.TBPOProduksiBahanBakuPenagihans.DeleteOnSubmit(produksiBahanBakuPenagihan);
                            db.SubmitChanges();

                            IDPOProduksiBahanBakuPenagihan = string.Empty;
                        }
                    }
                }
                LogError_Class LogError = new LogError_Class(ex, "Invoice Purchase Order Bahan Baku (ButtonSimpan_Click by : " + pengguna.NamaLengkap + ")");
                LabelPeringatan.Text = "Terjadi kesalahan, silahkan cek kembali data yang diinputkan";
                peringatan.Visible   = true;
            }
            finally
            {
                if (statusBerhasil == true)
                {
                    Response.Redirect("Default.aspx");
                }
            }
        }
    }
Beispiel #9
0
    private void LoadData()
    {
        try
        {
            using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
            {
                PenggunaLogin Pengguna = (PenggunaLogin)Session["PenggunaLogin"];

                TextBoxTanggalAwal.Text  = ((DateTime)ViewState["TanggalAwal"]).ToString("d MMMM yyyy");
                TextBoxTanggalAkhir.Text = ((DateTime)ViewState["TanggalAkhir"]).ToString("d MMMM yyyy");

                if (ViewState["TanggalAwal"].ToString() == ViewState["TanggalAkhir"].ToString())
                {
                    LabelPeriode.Text = Pengaturan.FormatTanggalRingkas(ViewState["TanggalAwal"]);
                }
                else
                {
                    LabelPeriode.Text = Pengaturan.FormatTanggalRingkas(ViewState["TanggalAwal"]) + " - " + Pengaturan.FormatTanggalRingkas(ViewState["TanggalAkhir"]);
                }

                TBTransaksi[] DataTransaksi;

                if (DropDownListStatusTransaksi.SelectedValue == "0")
                {
                    //SEMUA TRANSAKSI
                    DataTransaksi = db.TBTransaksis
                                    .Where(item =>
                                           item.IDJenisTransaksi == (int)EnumJenisTransaksi.Marketing &&
                                           item.IDTempat == Pengguna.IDTempat &&
                                           item.TanggalTransaksi.Value.Date >= ((DateTime)ViewState["TanggalAwal"]) &&
                                           item.TanggalTransaksi.Value.Date <= ((DateTime)ViewState["TanggalAkhir"])).ToArray();
                }
                else
                {
                    //SESUAI DENGAN PILIHAN
                    DataTransaksi = db.TBTransaksis
                                    .Where(item =>
                                           item.IDJenisTransaksi == (int)EnumJenisTransaksi.Marketing &&
                                           item.IDTempat == Pengguna.IDTempat &&
                                           item.TanggalTransaksi.Value.Date >= ((DateTime)ViewState["TanggalAwal"]) &&
                                           item.TanggalTransaksi.Value.Date <= ((DateTime)ViewState["TanggalAkhir"]) &&
                                           item.IDStatusTransaksi == DropDownListStatusTransaksi.SelectedValue.ToInt()).ToArray();
                }

                if (!string.IsNullOrWhiteSpace(TextBoxIDTransaksi.Text))
                {
                    DataTransaksi = DataTransaksi.Where(item => item.IDTransaksi.ToLower().Contains(TextBoxIDTransaksi.Text.ToLower())).ToArray();
                    TextBoxIDTransaksi.Focus();
                }

                if (!string.IsNullOrWhiteSpace(TextBoxPelanggan.Text))
                {
                    DataTransaksi = DataTransaksi.Where(item => item.TBPelanggan.NamaLengkap.ToLower().Contains(TextBoxPelanggan.Text.ToLower())).ToArray();
                    TextBoxPelanggan.Focus();
                }

                if (!string.IsNullOrWhiteSpace(TextBoxKeterangan.Text))
                {
                    DataTransaksi = DataTransaksi.Where(item => item.Keterangan.ToLower().Contains(TextBoxKeterangan.Text.ToLower())).ToArray();
                    TextBoxKeterangan.Focus();
                }

                if (!string.IsNullOrWhiteSpace(TextBoxJumlah.Text))
                {
                    DataTransaksi = DataTransaksi.Where(item => item.JumlahProduk == Parse.Decimal(TextBoxJumlah.Text)).ToArray();
                    TextBoxJumlah.Focus();
                }

                if (!string.IsNullOrWhiteSpace(TextBoxGrandtotal.Text))
                {
                    DataTransaksi = DataTransaksi.Where(item => item.GrandTotal == Parse.Decimal(TextBoxGrandtotal.Text)).ToArray();
                    TextBoxGrandtotal.Focus();
                }

                RepeaterTransaksi.DataSource = DataTransaksi
                                               .Select(item => new
                {
                    item.Nomor,
                    item.IDTransaksi,
                    item.IDStatusTransaksi,
                    item.TanggalTransaksi,
                    Pelanggan   = item.TBPelanggan.NamaLengkap,
                    ClassStatus = item.IDStatusTransaksi == (int)EnumStatusTransaksi.Complete ? "fitSize text-middle success" : item.IDStatusTransaksi == (int)EnumStatusTransaksi.Canceled ? "fitSize text-middle danger" : "fitSize text-middle warning",
                    Status      = item.TBStatusTransaksi.Nama,
                    item.JumlahProduk,
                    item.GrandTotal,
                    item.Keterangan,

                    UbahOrder     = item.IDStatusTransaksi == (int)EnumStatusTransaksi.AwaitingPayment,
                    TransaksiBaru = item.IDStatusTransaksi == (int)EnumStatusTransaksi.Canceled,
                    Batal         = item.IDStatusTransaksi != (int)EnumStatusTransaksi.Canceled
                })
                                               .OrderByDescending(item => item.Nomor)
                                               .ToArray();

                RepeaterTransaksi.DataBind();
            }
        }
        catch (Exception ex)
        {
            LogError_Class LogError = new LogError_Class(ex, Request.Url.PathAndQuery);
        }
    }
Beispiel #10
0
    protected void ButtonSimpan_Click(object sender, EventArgs e)
    {
        if (Page.IsValid)
        {
            PenggunaLogin pengguna = (PenggunaLogin)Session["PenggunaLogin"];

            List <POProduksiDetail_Model>        ViewStateListDetail        = (List <POProduksiDetail_Model>)ViewState["ViewStateListDetail"];
            List <POProduksiKomposisi_Model>     ViewStateListKomposisi     = (List <POProduksiKomposisi_Model>)ViewState["ViewStateListKomposisi"];
            List <POProduksiBiayaTambahan_Model> ViewStateListBiayaTambahan = (List <POProduksiBiayaTambahan_Model>)ViewState["ViewStateListBiayaTambahan"];

            if (ViewStateListDetail.Count > 0)
            {
                string             IDPOProduksiProduk = string.Empty;
                TBPOProduksiProduk produksiProduk     = null;
                bool statusBerhasil = false;

                try
                {
                    using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
                    {
                        peringatan.Visible = false;

                        if (!string.IsNullOrEmpty(Request.QueryString["edit"]))
                        {
                            produksiProduk = db.TBPOProduksiProduks.FirstOrDefault(item => item.IDPOProduksiProduk == Request.QueryString["edit"]);

                            if (produksiProduk.IDProyeksi != null)
                            {
                                foreach (var item in db.TBProyeksiDetails.Where(item => item.IDProyeksi == produksiProduk.IDProyeksi).OrderBy(data => data.TBKombinasiProduk.Nama).ToArray())
                                {
                                    TBPOProduksiProdukDetail poProduksiProdukDetail = produksiProduk.TBPOProduksiProdukDetails.FirstOrDefault(data => data.IDKombinasiProduk == item.IDKombinasiProduk);
                                    if (poProduksiProdukDetail != null)
                                    {
                                        item.Sisa = item.Sisa + poProduksiProdukDetail.Jumlah;
                                    }
                                }
                            }

                            db.TBPOProduksiProdukDetails.DeleteAllOnSubmit(produksiProduk.TBPOProduksiProdukDetails);
                            db.TBPOProduksiProdukKomposisis.DeleteAllOnSubmit(produksiProduk.TBPOProduksiProdukKomposisis);
                            db.TBPOProduksiProdukBiayaTambahans.DeleteAllOnSubmit(produksiProduk.TBPOProduksiProdukBiayaTambahans);
                            produksiProduk.TBPOProduksiProdukDetails.Clear();
                            produksiProduk.TBPOProduksiProdukKomposisis.Clear();
                            produksiProduk.TBPOProduksiProdukBiayaTambahans.Clear();

                            produksiProduk.IDTempat          = pengguna.IDTempat;
                            produksiProduk.IDPengguna        = pengguna.IDPengguna;
                            produksiProduk.EnumJenisProduksi = (int)PilihanEnumJenisProduksi.ProduksiSendiri;
                            produksiProduk.Tanggal           = TextBoxTanggal.Text.ToDateTime().AddHours(DateTime.Now.Hour).AddMinutes(DateTime.Now.Minute);
                        }
                        else
                        {
                            db.Proc_InsertPOProduksiProduk(ref IDPOProduksiProduk, pengguna.IDTempat, pengguna.IDPengguna, (int)PilihanEnumJenisProduksi.ProduksiSendiri, TextBoxTanggal.Text.ToDateTime().AddHours(DateTime.Now.Hour).AddMinutes(DateTime.Now.Minute));

                            produksiProduk = db.TBPOProduksiProduks.FirstOrDefault(item => item.IDPOProduksiProduk == IDPOProduksiProduk);
                        }

                        produksiProduk.IDProyeksi         = TextBoxIDProyeksi.Text != string.Empty ? TextBoxIDProyeksi.Text : null;
                        produksiProduk.IDVendor           = null;
                        produksiProduk.IDPenggunaPIC      = DropDownListPenggunaPIC.SelectedValue.ToInt();
                        produksiProduk.IDPenggunaDP       = null;
                        produksiProduk.IDJenisPOProduksi  = null;
                        produksiProduk.IDJenisPembayaran  = null;
                        produksiProduk.TanggalDownPayment = null;
                        produksiProduk.TanggalJatuhTempo  = null;
                        produksiProduk.TanggalPengiriman  = TextBoxTanggalPengiriman.Text.ToDateTime();
                        produksiProduk.TBPOProduksiProdukDetails.AddRange(ViewStateListDetail.Select(item => new TBPOProduksiProdukDetail
                        {
                            IDKombinasiProduk   = item.IDKombinasiProduk,
                            HargaPokokKomposisi = item.HargaPokokKomposisi,
                            BiayaTambahan       = item.BiayaTambahan,
                            TotalHPP            = item.TotalHPP,
                            HargaVendor         = item.Harga,
                            PotonganHargaVendor = item.PotonganHarga,
                            TotalHargaVendor    = item.TotalHarga,
                            Jumlah = (int)item.Jumlah,
                            Sisa   = (int)item.Sisa
                        }));

                        produksiProduk.TotalJumlah              = produksiProduk.TBPOProduksiProdukDetails.Sum(item => item.Jumlah);
                        produksiProduk.EnumJenisHPP             = RadioButtonListStatusHPP.SelectedValue.ToInt();
                        produksiProduk.SubtotalBiayaTambahan    = produksiProduk.TBPOProduksiProdukDetails.Sum(item => (item.Jumlah * item.BiayaTambahan));
                        produksiProduk.SubtotalTotalHPP         = produksiProduk.TBPOProduksiProdukDetails.Sum(item => (item.Jumlah * item.TotalHPP));
                        produksiProduk.SubtotalTotalHargaVendor = produksiProduk.TBPOProduksiProdukDetails.Sum(item => (item.Jumlah * item.TotalHargaVendor));
                        produksiProduk.PotonganPOProduksiProduk = 0;
                        produksiProduk.BiayaLainLain            = 0;
                        produksiProduk.PersentaseTax            = 0;
                        produksiProduk.Tax         = 0;
                        produksiProduk.Grandtotal  = produksiProduk.SubtotalTotalHPP;
                        produksiProduk.DownPayment = 0;
                        produksiProduk.Keterangan  = TextBoxKeterangan.Text;

                        produksiProduk.TBPOProduksiProdukKomposisis.AddRange(ViewStateListKomposisi.OrderBy(item => item.BahanBaku).GroupBy(item => new
                        {
                            item.IDBahanBaku,
                            item.IDSatuan,
                            item.HargaBeli
                        })
                                                                             .Select(item => new TBPOProduksiProdukKomposisi
                        {
                            IDBahanBaku = item.Key.IDBahanBaku,
                            IDSatuan    = item.Key.IDSatuan,
                            HargaBeli   = item.Key.HargaBeli,
                            Kebutuhan   = item.Sum(x => x.JumlahKebutuhan),
                            Kirim       = 0,
                            Sisa        = item.Sum(x => x.JumlahKebutuhan)
                        }));

                        produksiProduk.TBPOProduksiProdukBiayaTambahans.AddRange(ViewStateListBiayaTambahan.OrderBy(item => item.Nama).GroupBy(item => new
                        {
                            item.IDJenisBiayaProduksi
                        })
                                                                                 .Select(item => new TBPOProduksiProdukBiayaTambahan
                        {
                            IDJenisBiayaProduksi = item.Key.IDJenisBiayaProduksi,
                            Nominal = item.Sum(x => x.SubtotalBiaya)
                        }));

                        if (produksiProduk.IDProyeksi != null)
                        {
                            foreach (var item in db.TBProyeksiDetails.Where(item => item.IDProyeksi == produksiProduk.IDProyeksi).OrderBy(data => data.TBKombinasiProduk.Nama).ToArray())
                            {
                                TBPOProduksiProdukDetail poProduksiProdukDetail = produksiProduk.TBPOProduksiProdukDetails.FirstOrDefault(data => data.IDKombinasiProduk == item.IDKombinasiProduk);
                                if (poProduksiProdukDetail != null)
                                {
                                    item.Sisa = item.Sisa - poProduksiProdukDetail.Jumlah;
                                }
                            }
                        }

                        db.SubmitChanges();

                        statusBerhasil = true;
                    }
                }
                catch (Exception ex)
                {
                    if (statusBerhasil != true && string.IsNullOrEmpty(Request.QueryString["edit"]))
                    {
                        using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
                        {
                            produksiProduk = db.TBPOProduksiProduks.FirstOrDefault(item => item.IDPOProduksiProduk == IDPOProduksiProduk);
                            if (produksiProduk != null)
                            {
                                db.TBPOProduksiProdukDetails.DeleteAllOnSubmit(produksiProduk.TBPOProduksiProdukDetails);
                                db.TBPOProduksiProdukKomposisis.DeleteAllOnSubmit(produksiProduk.TBPOProduksiProdukKomposisis);
                                db.TBPOProduksiProdukBiayaTambahans.DeleteAllOnSubmit(produksiProduk.TBPOProduksiProdukBiayaTambahans);
                                db.TBPOProduksiProduks.DeleteOnSubmit(produksiProduk);
                                db.SubmitChanges();

                                IDPOProduksiProduk = string.Empty;
                            }
                        }
                    }
                    LogError_Class LogError = new LogError_Class(ex, "Produksi Produk Sendiri (ButtonSimpan_Click by : " + pengguna.NamaLengkap + ")");
                    LabelPeringatan.Text = "Terjadi kesalahan, silahkan cek kembali data yang diinputkan";
                    peringatan.Visible   = true;
                }
                finally
                {
                    if (statusBerhasil == true)
                    {
                        if (!string.IsNullOrEmpty(Request.QueryString["edit"]))
                        {
                            Response.Redirect("Detail.aspx?id=" + produksiProduk.IDPOProduksiProduk);
                        }
                        else
                        {
                            Response.Redirect("Default.aspx");
                        }
                    }
                }
            }
            else
            {
                LabelPeringatan.Text = "Tidak ada Produk yang dipilih";
                peringatan.Visible   = true;
            }
        }
    }
Beispiel #11
0
    protected void ButtonSimpan_Click(object sender, EventArgs e)
    {
        if (Page.IsValid)
        {
            peringatan.Visible = false;
            PenggunaLogin pengguna = (PenggunaLogin)Session["PenggunaLogin"];

            List <POProduksiDetail_Model> ViewStateListDetail = (List <POProduksiDetail_Model>)ViewState["ViewStateListDetail"];

            if (ViewStateListDetail.Count > 0)
            {
                string IDPOProduksiBahanBaku            = string.Empty;
                TBPOProduksiBahanBaku produksiBahanBaku = null;
                bool statusBerhasil = false;

                try
                {
                    using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
                    {
                        if (!string.IsNullOrEmpty(Request.QueryString["edit"]))
                        {
                            produksiBahanBaku = db.TBPOProduksiBahanBakus.FirstOrDefault(item => item.IDPOProduksiBahanBaku == Request.QueryString["edit"]);

                            if (produksiBahanBaku.IDProyeksi != null)
                            {
                                foreach (var item in produksiBahanBaku.TBPOProduksiBahanBakuDetails.OrderByDescending(data => data.TBBahanBaku.Nama))
                                {
                                    decimal jumlah = item.Jumlah * item.TBBahanBaku.Konversi.Value;
                                    foreach (var item2 in db.TBProyeksiKomposisis.Where(item2 => item2.IDProyeksi == produksiBahanBaku.IDProyeksi && item2.BahanBakuDasar == true && item2.IDBahanBaku == item.IDBahanBaku).OrderByDescending(item2 => item2.TBBahanBaku.Nama).ThenByDescending(item2 => item2.LevelProduksi))
                                    {
                                        if (item2.Sisa + jumlah <= item2.Jumlah)
                                        {
                                            item2.Sisa = item2.Sisa + jumlah;
                                            jumlah     = 0;
                                            break;
                                        }
                                        else
                                        {
                                            jumlah     = (jumlah + item2.Sisa) - item2.Jumlah;
                                            item2.Sisa = item2.Jumlah;
                                        }
                                    }
                                }
                            }

                            db.TBPOProduksiBahanBakuDetails.DeleteAllOnSubmit(produksiBahanBaku.TBPOProduksiBahanBakuDetails);
                            produksiBahanBaku.TBPOProduksiBahanBakuDetails.Clear();

                            produksiBahanBaku.IDTempat          = pengguna.IDTempat;
                            produksiBahanBaku.IDPengguna        = pengguna.IDPengguna;
                            produksiBahanBaku.EnumJenisProduksi = (int)PilihanEnumJenisProduksi.PurchaseOrder;
                            produksiBahanBaku.Tanggal           = TextBoxTanggal.Text.ToDateTime().AddHours(DateTime.Now.Hour).AddMinutes(DateTime.Now.Minute);
                        }
                        else
                        {
                            db.Proc_InsertPOProduksiBahanBaku(ref IDPOProduksiBahanBaku, pengguna.IDTempat, pengguna.IDPengguna, (int)PilihanEnumJenisProduksi.PurchaseOrder, TextBoxTanggal.Text.ToDateTime().AddHours(DateTime.Now.Hour).AddMinutes(DateTime.Now.Minute));

                            produksiBahanBaku = db.TBPOProduksiBahanBakus.FirstOrDefault(item => item.IDPOProduksiBahanBaku == IDPOProduksiBahanBaku);
                        }

                        produksiBahanBaku.IDProyeksi         = TextBoxIDProyeksi.Text != string.Empty ? TextBoxIDProyeksi.Text : null;
                        produksiBahanBaku.IDSupplier         = DropDownListSupplier.SelectedValue.ToInt();
                        produksiBahanBaku.IDPenggunaPIC      = DropDownListPenggunaPIC.SelectedValue.ToInt();
                        produksiBahanBaku.IDPenggunaDP       = null;
                        produksiBahanBaku.IDJenisPOProduksi  = null;
                        produksiBahanBaku.IDJenisPembayaran  = null;
                        produksiBahanBaku.LevelProduksi      = null;
                        produksiBahanBaku.TanggalDownPayment = null;
                        produksiBahanBaku.TanggalJatuhTempo  = TextBoxTanggalJatuhTempo.Text.ToDateTime();
                        produksiBahanBaku.TanggalPengiriman  = TextBoxTanggalPengiriman.Text.ToDateTime();
                        produksiBahanBaku.TBPOProduksiBahanBakuDetails.AddRange(ViewStateListDetail.OrderBy(item => item.BahanBaku).Select(item => new TBPOProduksiBahanBakuDetail
                        {
                            IDBahanBaku           = item.IDBahanBaku,
                            IDSatuan              = item.IDSatuan,
                            HargaPokokKomposisi   = item.HargaPokokKomposisi,
                            BiayaTambahan         = item.BiayaTambahan,
                            TotalHPP              = item.TotalHPP,
                            HargaSupplier         = item.Harga,
                            PotonganHargaSupplier = item.PotonganHarga,
                            TotalHargaSupplier    = item.TotalHarga,
                            Jumlah = item.Jumlah,
                            Sisa   = item.Sisa
                        }));

                        produksiBahanBaku.TotalJumlah                 = produksiBahanBaku.TBPOProduksiBahanBakuDetails.Sum(item => item.Jumlah);
                        produksiBahanBaku.EnumJenisHPP                = (int)PilihanEnumJenisHPP.HargaSupplierVendor;
                        produksiBahanBaku.SubtotalBiayaTambahan       = produksiBahanBaku.TBPOProduksiBahanBakuDetails.Sum(item => (item.Jumlah * item.BiayaTambahan));
                        produksiBahanBaku.SubtotalTotalHPP            = produksiBahanBaku.TBPOProduksiBahanBakuDetails.Sum(item => (item.Jumlah * item.TotalHPP));
                        produksiBahanBaku.SubtotalTotalHargaSupplier  = Math.Round(produksiBahanBaku.TBPOProduksiBahanBakuDetails.Sum(item => (item.Jumlah * item.TotalHargaSupplier)), 2, MidpointRounding.AwayFromZero);
                        produksiBahanBaku.PotonganPOProduksiBahanBaku = TextBoxPotonganPO.Text.ToDecimal();
                        produksiBahanBaku.BiayaLainLain               = TextBoxBiayaLainLain.Text.ToDecimal();
                        produksiBahanBaku.PersentaseTax               = HiddenFieldTax.Value.ToDecimal();

                        decimal subtotal = produksiBahanBaku.SubtotalTotalHargaSupplier.Value + produksiBahanBaku.BiayaLainLain.Value - produksiBahanBaku.PotonganPOProduksiBahanBaku.Value;
                        produksiBahanBaku.Tax         = Math.Round((subtotal * produksiBahanBaku.PersentaseTax.Value), 2, MidpointRounding.AwayFromZero);
                        produksiBahanBaku.Grandtotal  = subtotal + produksiBahanBaku.Tax;
                        produksiBahanBaku.DownPayment = 0;
                        produksiBahanBaku.Keterangan  = TextBoxKeterangan.Text;

                        if (produksiBahanBaku.IDProyeksi != null)
                        {
                            foreach (var item in produksiBahanBaku.TBPOProduksiBahanBakuDetails.OrderBy(data => data.TBBahanBaku.Nama))
                            {
                                decimal jumlah = item.Jumlah * item.TBBahanBaku.Konversi.Value;
                                TBProyeksiKomposisi[] proyeksiKomposisi = db.TBProyeksiKomposisis.Where(item2 => item2.IDProyeksi == produksiBahanBaku.IDProyeksi && item2.BahanBakuDasar == true && item2.IDBahanBaku == item.IDBahanBaku).OrderBy(item2 => item2.TBBahanBaku.Nama).ThenBy(item2 => item2.LevelProduksi).ToArray();
                                int count = proyeksiKomposisi.Count();
                                foreach (var item2 in proyeksiKomposisi)
                                {
                                    if (item2.Sisa - jumlah >= 0)
                                    {
                                        item2.Sisa = item2.Sisa - jumlah;
                                        jumlah     = 0;
                                        break;
                                    }
                                    else
                                    {
                                        if (count > 1)
                                        {
                                            jumlah     = Math.Abs(item2.Sisa - jumlah);
                                            item2.Sisa = 0;
                                        }
                                        else
                                        {
                                            item2.Sisa = item2.Sisa - jumlah;
                                        }
                                    }

                                    count = count - 1;
                                }
                            }
                        }


                        TBHargaSupplier[] daftarHargaSupplier = db.TBHargaSuppliers.Where(item => item.IDSupplier == produksiBahanBaku.IDSupplier).ToArray();

                        foreach (var item in ViewStateListDetail)
                        {
                            TBHargaSupplier hargaSupplier = daftarHargaSupplier.FirstOrDefault(data => data.IDStokBahanBaku == item.IDStokBahanBaku);

                            if (hargaSupplier == null)
                            {
                                db.TBHargaSuppliers.InsertOnSubmit(new TBHargaSupplier()
                                {
                                    IDStokBahanBaku = item.IDStokBahanBaku, IDSupplier = produksiBahanBaku.IDSupplier, Tanggal = produksiBahanBaku.Tanggal, Harga = item.Harga
                                });
                            }

                            else
                            {
                                hargaSupplier.Tanggal = produksiBahanBaku.Tanggal;
                                hargaSupplier.Harga   = item.Harga;
                            }
                        }
                        db.SubmitChanges();

                        statusBerhasil = true;
                    }
                }
                catch (Exception ex)
                {
                    if (statusBerhasil != true && string.IsNullOrEmpty(Request.QueryString["edit"]))
                    {
                        using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
                        {
                            produksiBahanBaku = db.TBPOProduksiBahanBakus.FirstOrDefault(item => item.IDPOProduksiBahanBaku == IDPOProduksiBahanBaku);
                            if (produksiBahanBaku != null)
                            {
                                db.TBPOProduksiBahanBakuDetails.DeleteAllOnSubmit(produksiBahanBaku.TBPOProduksiBahanBakuDetails);
                                db.TBPOProduksiBahanBakus.DeleteOnSubmit(produksiBahanBaku);
                                db.SubmitChanges();

                                IDPOProduksiBahanBaku = string.Empty;
                            }
                        }
                    }
                    LogError_Class LogError = new LogError_Class(ex, "Purchase Order Bahan Baku (ButtonSimpan_Click by : " + pengguna.NamaLengkap + ")");
                    LabelPeringatan.Text = "Terjadi kesalahan, silahkan cek kembali data yang diinputkan";
                    peringatan.Visible   = true;
                }
                finally
                {
                    if (statusBerhasil == true)
                    {
                        if (!string.IsNullOrEmpty(Request.QueryString["edit"]))
                        {
                            Response.Redirect("Detail.aspx?id=" + produksiBahanBaku.IDPOProduksiBahanBaku);
                        }
                        else
                        {
                            Response.Redirect("Default.aspx");
                        }
                    }
                }
            }
            else
            {
                LabelPeringatan.Text = "Tidak ada Bahan Baku yang dipilih";
                peringatan.Visible   = true;
            }
        }
    }
Beispiel #12
0
    protected void ButtonSimpan_Click(object sender, EventArgs e)
    {
        if (Page.IsValid)
        {
            //DateTime tanggalretur = DateTime.Parse(TextBoxTanggalRetur.Text + " " + DateTime.Now.ToString("HH:mm:ss tt"));
            peringatan.Visible = false;
            PenggunaLogin pengguna = (PenggunaLogin)Session["PenggunaLogin"];

            List <StokBahanBaku_Model> ViewStateListDetail = (List <StokBahanBaku_Model>)ViewState["ViewStateListDetail"];

            if (ViewStateListDetail.Count > 0)
            {
                string IDPOProduksiBahanBakuRetur           = string.Empty;
                TBPOProduksiBahanBakuRetur POBahanBakuRetur = null;
                bool statusBerhasil = false;

                try
                {
                    using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
                    {
                        db.Proc_InsertPOProduksiBahanBakuRetur(ref IDPOProduksiBahanBakuRetur, pengguna.IDTempat, DropDownListSupplier.SelectedValue.ToInt(), pengguna.IDPengguna, TextBoxTanggal.Text.ToDateTime().AddHours(DateTime.Now.Hour).AddMinutes(DateTime.Now.Minute));
                        POBahanBakuRetur = db.TBPOProduksiBahanBakuReturs.FirstOrDefault(item => item.IDPOProduksiBahanBakuRetur == IDPOProduksiBahanBakuRetur);

                        POBahanBakuRetur.IDPenerimaanPOProduksiBahanBaku = DropDownListPenerimaan.SelectedValue != "0" ? DropDownListPenerimaan.SelectedValue : null;
                        POBahanBakuRetur.TBPOProduksiBahanBakuReturDetails.AddRange(ViewStateListDetail.OrderBy(item => item.BahanBaku).Select(item => new TBPOProduksiBahanBakuReturDetail
                        {
                            TBStokBahanBaku = db.TBStokBahanBakus.FirstOrDefault(item2 => item2.IDStokBahanBaku == item.IDStokBahanBaku),
                            IDSatuan        = item.IDSatuan,
                            HargaBeli       = item.HargaBeli,
                            HargaRetur      = item.HargaSupplier,
                            Jumlah          = item.Jumlah
                        }));
                        POBahanBakuRetur.Grandtotal      = POBahanBakuRetur.TBPOProduksiBahanBakuReturDetails.Sum(item => item.Jumlah * item.HargaRetur);
                        POBahanBakuRetur.EnumStatusRetur = (int)EnumStatusPORetur.Baru;
                        POBahanBakuRetur.Keterangan      = TextBoxKeterangan.Text;

                        foreach (var item in POBahanBakuRetur.TBPOProduksiBahanBakuReturDetails)
                        {
                            StokBahanBaku_Class.UpdateBertambahBerkurang(
                                db: db,
                                tanggal: DateTime.Now,
                                idPengguna: pengguna.IDPengguna,
                                stokBahanBaku: item.TBStokBahanBaku,
                                jumlahStok: item.Jumlah.Value,
                                hargaBeli: item.HargaBeli.Value,
                                satuanBesar: true,
                                enumJenisPerpindahanStok: EnumJenisPerpindahanStok.ReturKeTempatProduksi,
                                keterangan: "(" + item.TBStokBahanBaku.TBBahanBaku.Nama + ") Retur PO #" + IDPOProduksiBahanBakuRetur);
                        }

                        db.SubmitChanges();

                        statusBerhasil = true;
                    }
                }
                catch (Exception ex)
                {
                    if (statusBerhasil != true)
                    {
                        using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
                        {
                            POBahanBakuRetur = db.TBPOProduksiBahanBakuReturs.FirstOrDefault(item => item.IDPOProduksiBahanBakuRetur == IDPOProduksiBahanBakuRetur);
                            if (POBahanBakuRetur != null)
                            {
                                db.TBPOProduksiBahanBakuReturDetails.DeleteAllOnSubmit(POBahanBakuRetur.TBPOProduksiBahanBakuReturDetails);
                                db.TBPOProduksiBahanBakuReturs.DeleteOnSubmit(POBahanBakuRetur);
                                db.SubmitChanges();

                                IDPOProduksiBahanBakuRetur = string.Empty;
                            }
                        }
                    }
                    LogError_Class LogError = new LogError_Class(ex, "Retur PO Bahan Baku (ButtonSimpan_Click by : " + pengguna.NamaLengkap + ")");
                    LabelPeringatan.Text = "Terjadi kesalahan, silahkan cek kembali data yang diinputkan";
                    peringatan.Visible   = true;
                }
                finally
                {
                    if (statusBerhasil == true)
                    {
                        Response.Redirect("Default.aspx");
                    }
                }
            }
            else
            {
                LabelPeringatan.Text = "Tidak ada Bahan Baku yang dipilih";
                peringatan.Visible   = true;
            }
        }
    }
Beispiel #13
0
    protected void ButtonSimpan_Click(object sender, EventArgs e)
    {
        try
        {
            if (DropDownListTempatPenerima.Items.Count == 0)
            {
                LiteralWarning.Text = Alert_Class.Pesan(TipeAlert.Danger, "Anda harus membuat lokasi tujuan transfer. <a href='/WITAdministrator/Store/Tempat/Pengaturan.aspx'>Buat lokasi baru</a>");
                return;
            }

            bool   StokKurang       = false;
            string TransferBerhasil = string.Empty;

            using (DataClassesDatabaseDataContext db = new DataClassesDatabaseDataContext())
            {
                PenggunaLogin    Pengguna         = (PenggunaLogin)Session["PenggunaLogin"];
                StokProduk_Class StokProduk_Class = new StokProduk_Class(db);
                TBTransferProduk DataTransferProduk;

                if (string.IsNullOrWhiteSpace(LabelIDTransferProduk.Text))
                {
                    #region MEMBUAT TRANSFER PRODUK BARU
                    TransferProduk_Class TransferProduk = new TransferProduk_Class();
                    DataTransferProduk = TransferProduk.Tambah(db, Pengguna.IDPengguna, DropDownListTempatPengirim.SelectedValue.ToInt(), DropDownListTempatPenerima.SelectedValue.ToInt(), TextBoxKeterangan.Text);

                    LabelIDTransferProduk.Text = DataTransferProduk.IDTransferProduk;
                    #endregion
                }
                else
                {
                    DataTransferProduk = db.TBTransferProduks.FirstOrDefault(item2 => item2.IDTransferProduk == LabelIDTransferProduk.Text);
                }

                foreach (RepeaterItem item in RepeaterStokKombinasiProduk.Items)
                {
                    Label        LabelIDKombinasiProduk = (Label)item.FindControl("LabelIDKombinasiProduk");
                    Label        LabelJumlah            = (Label)item.FindControl("LabelJumlah");
                    TextBox      TextBoxJumlahTransfer  = (TextBox)item.FindControl("TextBoxJumlahTransfer");
                    HtmlTableRow panelStok = (HtmlTableRow)item.FindControl("panelStok");

                    if (TextBoxJumlahTransfer.Text.ToDecimal().ToInt() > 0)
                    {
                        //JIKA JUMLAH TRANSFER VALID TIDAK NULL DAN TIDAK 0
                        int JumlahTransfer = TextBoxJumlahTransfer.Text.ToDecimal().ToInt();

                        //PENCARIAN STOK PRODUK
                        var StokProduk = StokProduk_Class.Cari(DropDownListTempatPengirim.SelectedValue.ToInt(), LabelIDKombinasiProduk.Text.ToInt());

                        if (JumlahTransfer <= StokProduk.Jumlah)
                        {
                            //JIKA JUMLAH YANG AKAN DI TRANSFER LEBIH KECIL ATAU SAMA DENGAN JUMLAH STOK
                            StokProduk_Class.BertambahBerkurang(DropDownListTempatPengirim.SelectedValue.ToInt(), Pengguna.IDPengguna, StokProduk, JumlahTransfer, StokProduk.HargaBeli.Value, StokProduk.HargaJual.Value, EnumJenisPerpindahanStok.TransferStokKeluar, "Transfer #" + LabelIDTransferProduk.Text);

                            //PENGECEKAN APAKAH SUDAH ADA DI DETAIL
                            var TransferProdukDetail = DataTransferProduk.TBTransferProdukDetails
                                                       .FirstOrDefault(item2 => item2.IDKombinasiProduk == StokProduk.IDKombinasiProduk);

                            if (TransferProdukDetail == null) //DETAIL TRANSFER PRODUK TIDAK DITEMUKAN MEMBUAT BARU
                            {
                                DataTransferProduk.TBTransferProdukDetails.Add(new TBTransferProdukDetail
                                {
                                    IDKombinasiProduk = StokProduk.IDKombinasiProduk,
                                    HargaBeli         = StokProduk.HargaBeli.Value,
                                    HargaJual         = StokProduk.HargaJual.Value,
                                    Jumlah            = JumlahTransfer
                                });
                            }
                            else //JIKA SUDAH TERDAPAT DI DETAIL HANYA MENAMBAHKAN QTY
                            {
                                TransferProdukDetail.Jumlah += JumlahTransfer;
                            }

                            //MENGKOSONGKAN TEXTBOX - LABEL JUMLAH DIISI DENGAN JUMLAH STOK TERBARU
                            TextBoxJumlahTransfer.Text = string.Empty;
                            panelStok.Attributes.Add("class", "");
                            LabelJumlah.Text          = (LabelJumlah.Text.ToDecimal().ToInt() - JumlahTransfer).ToFormatHargaBulat();
                            LabelTotalJumlahStok.Text = (LabelTotalJumlahStok.Text.ToDecimal().ToInt() - JumlahTransfer).ToFormatHargaBulat();

                            TransferBerhasil += "<br/>" + JumlahTransfer.ToFormatHargaBulat() + " - " + StokProduk.TBKombinasiProduk.Nama; //MESSAGE TRANSFER YANG BERHASIL
                        }
                        else
                        {
                            //REFRESH LABEL JUMLAH STOK
                            LabelTotalJumlahStok.Text = (LabelTotalJumlahStok.Text.ToDecimal().ToInt() - (LabelJumlah.Text.ToDecimal().ToInt() - StokProduk.Jumlah.Value)).ToFormatHargaBulat();
                            LabelJumlah.Text          = StokProduk.Jumlah.ToFormatHargaBulat();
                            panelStok.Attributes.Add("class", "danger");

                            StokKurang = true;
                        }
                    }

                    //HANDLE POSTBACK FORMAT HARGA
                    TextBoxJumlahTransfer.Text = TextBoxJumlahTransfer.Text.ToDecimal().ToInt() == 0 ? "" : TextBoxJumlahTransfer.Text.ToDecimal().ToInt().ToString();
                }

                //UPDATE DATA TRANSFER PRODUK
                DataTransferProduk.TanggalUpdate       = DateTime.Now;
                DataTransferProduk.TotalJumlah         = DataTransferProduk.TBTransferProdukDetails.Sum(item2 => item2.Jumlah);
                DataTransferProduk.GrandTotalHargaBeli = DataTransferProduk.TBTransferProdukDetails.Sum(item2 => item2.Jumlah * item2.HargaBeli);
                DataTransferProduk.GrandTotalHargaJual = DataTransferProduk.TBTransferProdukDetails.Sum(item2 => item2.Jumlah * item2.HargaJual);

                db.SubmitChanges();
            }

            //MENAMPILKAN MESSAGE
            LiteralWarning.Text = string.Empty;

            if (!string.IsNullOrWhiteSpace(TransferBerhasil))
            {
                LiteralWarning.Text += Alert_Class.Pesan(TipeAlert.Success, "Produk berhasil disimpan" + TransferBerhasil);
            }

            if (StokKurang)
            {
                LiteralWarning.Text += Alert_Class.Pesan(TipeAlert.Danger, "Stok tidak cukup, silahkan cek kembali");
            }
        }
        catch (Exception ex)
        {
            LiteralWarning.Text = Alert_Class.Pesan(TipeAlert.Danger, ex.Message);
            LogError_Class LogError = new LogError_Class(ex, Request.Url.PathAndQuery);
        }
    }
Beispiel #14
0
    private void LoadData(DataClassesDatabaseDataContext db)
    {
        try
        {
            PenggunaLogin Pengguna = (PenggunaLogin)Session["PenggunaLogin"];

            TextBoxTanggalAwal.Text  = ((DateTime)ViewState["TanggalAwal"]).ToString("d MMMM yyyy");
            TextBoxTanggalAkhir.Text = ((DateTime)ViewState["TanggalAkhir"]).ToString("d MMMM yyyy");

            if (ViewState["TanggalAwal"].ToString() == ViewState["TanggalAkhir"].ToString())
            {
                LabelPeriode.Text = Pengaturan.FormatTanggalRingkas(ViewState["TanggalAwal"]);
            }
            else
            {
                LabelPeriode.Text = Pengaturan.FormatTanggalRingkas(ViewState["TanggalAwal"]) + " - " + Pengaturan.FormatTanggalRingkas(ViewState["TanggalAkhir"]);
            }

            TBTransaksi[] DataTransaksi;

            if (DropDownListStatusTransaksi.SelectedValue == "0")
            {
                //SEMUA TRANSAKSI
                DataTransaksi = db.TBTransaksis
                                .Where(item =>
                                       item.IDTempat == Pengguna.IDTempat &&
                                       item.TanggalTransaksi.Value.Date >= ((DateTime)ViewState["TanggalAwal"]) &&
                                       item.TanggalTransaksi.Value.Date <= ((DateTime)ViewState["TanggalAkhir"]))
                                .ToArray();
            }
            else if (Parse.Int(DropDownListStatusTransaksi.SelectedValue) == (int)EnumStatusTransaksi.AwaitingPayment)
            {
                DataTransaksi = db.TBTransaksis
                                .Where(item =>
                                       item.IDTempat == Pengguna.IDTempat &&
                                       item.TanggalTransaksi.Value.Date >= ((DateTime)ViewState["TanggalAwal"]) &&
                                       item.TanggalTransaksi.Value.Date <= ((DateTime)ViewState["TanggalAkhir"]) &&
                                       item.IDStatusTransaksi == (int)EnumStatusTransaksi.AwaitingPayment &&
                                       item.TBTransaksiJenisPembayarans.Count == 0) //BELUM ADA PEMBAYARAN
                                .ToArray();
            }
            else if (Parse.Int(DropDownListStatusTransaksi.SelectedValue) == (int)EnumStatusTransaksi.AwaitingPaymentVerification)
            {
                DataTransaksi = db.TBTransaksis
                                .Where(item =>
                                       item.IDTempat == Pengguna.IDTempat &&
                                       item.TanggalTransaksi.Value.Date >= ((DateTime)ViewState["TanggalAwal"]) &&
                                       item.TanggalTransaksi.Value.Date <= ((DateTime)ViewState["TanggalAkhir"]) &&
                                       item.IDStatusTransaksi == (int)EnumStatusTransaksi.AwaitingPayment &&
                                       item.TBTransaksiJenisPembayarans.Count > 0) //SUDAH ADA PEMBAYARAN
                                .ToArray();
            }
            else
            {
                //SESUAI DENGAN PILIHAN
                DataTransaksi = db.TBTransaksis
                                .Where(item =>
                                       item.IDTempat == Pengguna.IDTempat &&
                                       item.TanggalTransaksi.Value.Date >= ((DateTime)ViewState["TanggalAwal"]) &&
                                       item.TanggalTransaksi.Value.Date <= ((DateTime)ViewState["TanggalAkhir"]) &&
                                       item.IDStatusTransaksi == Parse.Int(DropDownListStatusTransaksi.SelectedValue)).ToArray();
            }

            if (!string.IsNullOrWhiteSpace(TextBoxIDTransaksi.Text))
            {
                DataTransaksi = DataTransaksi.Where(item => item.IDTransaksi.ToLower().Contains(TextBoxIDTransaksi.Text.ToLower())).ToArray();
                TextBoxIDTransaksi.Focus();
            }

            if (!string.IsNullOrWhiteSpace(TextBoxJenisTransaksi.Text))
            {
                DataTransaksi = DataTransaksi.Where(item => item.TBJenisTransaksi.Nama.ToLower().Contains(TextBoxJenisTransaksi.Text.ToLower())).ToArray();
                TextBoxJenisTransaksi.Focus();
            }

            if (!string.IsNullOrWhiteSpace(TextBoxMeja.Text))
            {
                DataTransaksi = DataTransaksi.Where(item => item.TBMeja.Nama.ToLower().Contains(TextBoxMeja.Text.ToLower())).ToArray();
                TextBoxMeja.Focus();
            }

            if (!string.IsNullOrWhiteSpace(TextBoxPengirim.Text))
            {
                DataTransaksi = DataTransaksi
                                .Where(item =>
                                       item.IDTempatPengirim.HasValue &&
                                       item.TBTempat1.Nama.ToLower().Contains(TextBoxPengirim.Text.ToLower()))
                                .ToArray();
                TextBoxPengirim.Focus();
            }

            if (!string.IsNullOrWhiteSpace(TextBoxPenggunaTransaksi.Text))
            {
                DataTransaksi = DataTransaksi.Where(item => item.TBPengguna.NamaLengkap.ToLower().Contains(TextBoxPenggunaTransaksi.Text.ToLower())).ToArray();
                TextBoxPenggunaTransaksi.Focus();
            }

            if (!string.IsNullOrWhiteSpace(TextBoxPelanggan.Text))
            {
                DataTransaksi = DataTransaksi.Where(item => item.TBPelanggan.NamaLengkap.ToLower().Contains(TextBoxPelanggan.Text.ToLower())).ToArray();
                TextBoxPelanggan.Focus();
            }

            if (!string.IsNullOrWhiteSpace(TextBoxKeterangan.Text))
            {
                DataTransaksi = DataTransaksi.Where(item => item.Keterangan.ToLower().Contains(TextBoxKeterangan.Text.ToLower())).ToArray();
                TextBoxKeterangan.Focus();
            }

            if (!string.IsNullOrWhiteSpace(TextBoxGrandtotal.Text))
            {
                DataTransaksi = DataTransaksi.Where(item => item.GrandTotal == Parse.Decimal(TextBoxGrandtotal.Text)).ToArray();
                TextBoxGrandtotal.Focus();
            }

            RepeaterTransaksi.DataSource = DataTransaksi
                                           .Select(item => new
            {
                item.IDTransaksi,
                JenisTransaksi = item.TBJenisTransaksi.Nama,
                Meja           = item.TBMeja.Nama,
                item.IDStatusTransaksi,
                item.TanggalTransaksi,
                PenggunaTransaksi = item.TBPengguna.NamaLengkap,
                Pelanggan         = item.TBPelanggan.NamaLengkap,
                ClassStatus       = item.IDStatusTransaksi == (int)EnumStatusTransaksi.Complete ? "fitSize success" : item.IDStatusTransaksi == (int)EnumStatusTransaksi.Canceled ? "fitSize danger" : "fitSize warning",
                Status            = item.TBStatusTransaksi.Nama,
                item.JumlahProduk,
                item.GrandTotal,
                item.Keterangan,
                Pengirim = item.IDTempatPengirim.HasValue ? item.TBTempat1.Nama : "",

                UbahOrder     = item.IDStatusTransaksi == (int)EnumStatusTransaksi.AwaitingPayment,
                TransaksiBaru = item.IDStatusTransaksi == (int)EnumStatusTransaksi.Canceled,
                Batal         = item.IDStatusTransaksi != (int)EnumStatusTransaksi.Canceled,
                Retur         = Pengguna.PointOfSales == TipePointOfSales.Retail && item.IDStatusTransaksi == (int)EnumStatusTransaksi.Complete && item.TBTransaksiDetails.Where(item2 => item2.Quantity > 0).Count() > 0
            })
                                           .OrderByDescending(item => item.TanggalTransaksi)
                                           .ToArray();

            RepeaterTransaksi.DataBind();
        }
        catch (Exception ex)
        {
            LogError_Class LogError = new LogError_Class(ex, Request.Url.PathAndQuery);
        }
    }