Ejemplo n.º 1
0
        public void Update(PayablePayment payablePayment)
        {
            Transaction tx = null;

            try
            {
                using (var em = EntityManagerFactory.CreateInstance(ds))
                {
                    tx = em.BeginTransaction();

                    string[] columns = { "PaymentCode",  "PaymentDate", "TotalCash", "TotalBank", "TotalGiro", "TotalCorrection", "Notes",
                                         "ModifiedDate", "ModifiedBy" };

                    object[] values = { payablePayment.PaymentCode,       payablePayment.PaymentDate,     payablePayment.TotalCash, payablePayment.TotalBank,
                                        payablePayment.TotalGiro,         payablePayment.TotalCorrection, payablePayment.Notes,
                                        DateTime.Now.ToShortDateString(), Store.ActiveUser };

                    var q = new Query().Select(columns).From(tableName).Update(values)
                            .Where("ID").Equal("{" + payablePayment.ID + "}");

                    em.ExecuteNonQuery(q.ToSql(), tx);


                    ////detail dihapus -> update status = false
                    var list = payablePaymentItemRepository.GetByPayablePaymentId(payablePayment.ID);
                    foreach (var payableItem in list)
                    {
                        salesRepository.UpdateStatus(em, tx, payableItem.SalesId, false);
                        payableBalanceRepository.UpdateStatusFromPayment(em, tx, payableItem.Sales.Code, false);
                    }

                    payablePaymentItemRepository.Delete(em, tx, payablePayment.ID);



                    foreach (var payablePaymentItem in payablePayment.PayablePaymentItems)
                    {
                        payablePaymentItem.PayablePaymentId = payablePayment.ID;

                        payablePaymentItemRepository.Save(em, tx, payablePaymentItem);

                        //update status = lunas
                        salesRepository.UpdateStatus(em, tx, payablePaymentItem.SalesId, true);

                        //update status = lunas
                        payableBalanceRepository.UpdateStatusFromPayment(em, tx, payablePaymentItem.Sales.Code, true);
                    }

                    UpdateGrandTotal(em, tx, payablePayment.ID, payablePayment.GrandTotal);

                    tx.Commit();
                }
            }
            catch (Exception ex)
            {
                tx.Rollback();

                throw ex;
            }
        }
Ejemplo n.º 2
0
        private void ViewPayablePaymentDetail(PayablePayment payablePayment)
        {
            txtID.Text = payablePayment.ID.ToString();
            txtPayablePaymentId.Text = payablePayment.ID.ToString();
            lblCode.Text             = payablePayment.PaymentCode;

            dtpDate.Text = payablePayment.PaymentDate.ToShortDateString();

            txtNotes.Text = payablePayment.Notes;
        }
Ejemplo n.º 3
0
        public void Delete(PayablePayment payablePayment)
        {
            Transaction tx = null;

            try
            {
                using (var em = EntityManagerFactory.CreateInstance(ds))
                {
                    tx = em.BeginTransaction();

                    String notes = "";
                    if (payablePayment.Notes != "")
                    {
                        notes = "DIBATALKAN - " + payablePayment.Notes;
                    }
                    else
                    {
                        notes = "DIBATALKAN";
                    }

                    string[] columns = { "TotalCash",    "TotalBank", "TotalGiro", "TotalCorrection", "GrandTotal", "Notes",
                                         "ModifiedDate", "ModifiedBy" };

                    object[] values = { 0,                                0, 0, 0, 0, notes,
                                        DateTime.Now.ToShortDateString(), Store.ActiveUser };

                    var q = new Query().Select(columns).From(tableName).Update(values)
                            .Where("ID").Equal(payablePayment.ID);

                    em.ExecuteNonQuery(q.ToSql(), tx);

                    var itemList = payablePaymentItemRepository.GetByPayablePaymentId(payablePayment.ID);
                    foreach (var payablePaymentItem in itemList)
                    {
                        payablePaymentItemRepository.Delete(em, tx, payablePaymentItem);
                    }

                    foreach (var item in itemList)
                    {
                        //update status = lunas
                        salesRepository.UpdateStatus(em, tx, item.SalesId, false);

                        //update status = lunas
                        payableBalanceRepository.UpdateStatusFromPayment(em, tx, item.Sales.Code, false);
                    }

                    tx.Commit();
                }
            }
            catch (Exception ex)
            {
                tx.Rollback();
                throw ex;
            }
        }
Ejemplo n.º 4
0
        private void PopulatePayablePayment(PayablePayment payablePayment)
        {
            var item = new ListViewItem(payablePayment.ID.ToString());

            item.SubItems.Add(payablePayment.PaymentDate.ToString("dd/MM/yyyy"));
            item.SubItems.Add(payablePayment.PaymentCode);
            item.SubItems.Add(payablePayment.GrandTotal.ToString("N0").Replace(",", "."));
            item.SubItems.Add(payablePayment.CreatedDate.ToString("dd/MM/yyyy"));
            item.SubItems.Add(payablePayment.CreatedBy);
            item.SubItems.Add(payablePayment.ModifiedDate.ToString("dd/MM/yyyy"));
            item.SubItems.Add(payablePayment.ModifiedBy);

            lvwPayablePayment.Items.Add(item);
        }
Ejemplo n.º 5
0
        public void Save(PayablePayment payablePayment)
        {
            Transaction tx = null;

            try
            {
                using (var em = EntityManagerFactory.CreateInstance(ds))
                {
                    tx = em.BeginTransaction();

                    Guid ID = Guid.NewGuid();

                    string[] columns = { "ID",          "PaymentCode", "PaymentDate", "TotalCash", "TotalBank", "TotalGiro", "TotalCorrection",
                                         "GrandTotal",  "Notes",
                                         "CreatedDate", "CreatedBy" };

                    object[] values = { ID,                               payablePayment.PaymentCode, payablePayment.PaymentDate.ToShortDateString(), payablePayment.TotalCash,
                                        payablePayment.TotalBank,         payablePayment.TotalGiro,   payablePayment.TotalCorrection,
                                        payablePayment.GrandTotal,        payablePayment.Notes,
                                        DateTime.Now.ToShortDateString(), Store.ActiveUser };

                    var q = new Query().Select(columns).From(tableName).Insert(values);

                    em.ExecuteNonQuery(q.ToSql(), tx);

                    foreach (var payablePaymentItems in payablePayment.PayablePaymentItems)
                    {
                        payablePaymentItems.PayablePaymentId = ID;

                        payablePaymentItemRepository.Save(em, tx, payablePaymentItems);

                        //update status = lunas
                        salesRepository.UpdateStatus(em, tx, payablePaymentItems.SalesId, true);

                        //update status = lunas
                        payableBalanceRepository.UpdateStatusFromPayment(em, tx, payablePaymentItems.Sales.Code, true);
                    }

                    recordCounterRepository.UpdatePayablePaymentCounter(payablePayment.PaymentDate.Month, payablePayment.PaymentDate.Year);

                    tx.Commit();
                }
            }
            catch (Exception ex)
            {
                tx.Rollback();
                throw ex;
            }
        }
Ejemplo n.º 6
0
        private void tsbDelete_Click(object sender, EventArgs e)
        {
            var userAccess = userAccessRepository.GetAll();

            bool isAllowed = userAccess.Exists(u => u.FullName == Store.ActiveUser &&
                                               u.ObjectName == "Pelunasan Piutang" && u.IsDelete);

            if (isAllowed == false && Store.IsAdministrator == false)
            {
                MessageBox.Show("Anda tidak dapat menghapus", "Perhatian", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            else
            {
                if (Store.IsPeriodClosed)
                {
                    MessageBox.Show("Tidak dapat menambah/ubah/hapus \n\n Periode : " + Store.GetMonthName(Store.ActiveMonth) + " " + Store.ActiveYear + "\n\n" + "Sudah Tutup Buku", "Perhatian",
                                    MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
                else
                {
                    PayablePayment payablePayment = payablePaymentRepository.GetById(new Guid(txtID.Text));
                    if (payablePayment.Notes.Contains("DIBATALKAN"))
                    {
                        MessageBox.Show("Sudah pernah di hapus ", "Perhatian",
                                        MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }
                    else
                    {
                        if (MessageBox.Show("Anda yakin ingin menghapus '" + lblCode.Text + "'", "Perhatian",
                                            MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
                        {
                            var payablePayment1 = new PayablePayment();
                            payablePayment1.ID    = new Guid(txtID.Text);
                            payablePayment1.Notes = txtNotes.Text;

                            payablePaymentRepository.Delete(payablePayment1);
                            GetLastPayablePayment();
                        }

                        if (lvwPayablePayment.Items.Count == 0)
                        {
                            tsbEdit.Enabled   = false;
                            tsbDelete.Enabled = false;
                        }
                    }
                }
            }
        }
Ejemplo n.º 7
0
        public PayablePayment GetLast(int month, int year)
        {
            PayablePayment payablePayment = null;

            using (var em = EntityManagerFactory.CreateInstance(ds))
            {
                string sql = "SELECT TOP 1 ID, PaymentCode, PaymentDate, "
                             + "TotalCash, TotalBank, TotalGiro, TotalCorrection, GrandTotal, Notes, "
                             + "CreatedDate, ModifiedDate, CreatedBy, ModifiedBy "
                             + "FROM PayablePayment "
                             + "WHERE Month(PaymentDate)=" + month + " AND Year(PaymentDate)=" + year
                             + " ORDER BY PayablePayment.PaymentCode DESC";

                payablePayment = em.ExecuteObject <PayablePayment>(sql, new PayablePaymentMapper());
            }

            return(payablePayment);
        }
Ejemplo n.º 8
0
        public PayablePayment GetByCode(string code)
        {
            PayablePayment payablePayment = null;

            using (var em = EntityManagerFactory.CreateInstance(ds))
            {
                string sql = "SELECT ID, PaymentCode, PaymentDate, "
                             + "TotalCash, TotalBank, TotalGiro, TotalCorrection, GrandTotal, Notes, "
                             + "CreatedDate, ModifiedDate, CreatedBy, ModifiedBy "
                             + "FROM PayablePayment "
                             + "WHERE PaymentCode='" + code + "'";


                payablePayment = em.ExecuteObject <PayablePayment>(sql, new PayablePaymentMapper());
            }

            return(payablePayment);
        }
Ejemplo n.º 9
0
        public PayablePayment GetById(Guid id)
        {
            PayablePayment payablePayment = null;

            using (var em = EntityManagerFactory.CreateInstance(ds))
            {
                string sql = "SELECT p.ID, p.PaymentCode, p.PaymentDate, "
                             + "p.TotalCash, p.TotalBank, p.TotalGiro, p.TotalCorrection, p.GrandTotal, p.Notes, "
                             + "p.CreatedDate,p.ModifiedDate, p.CreatedBy, p.ModifiedBy "
                             + "FROM PayablePayment p "
                             + "WHERE "
                             + "p.ID='{" + id + "}'";

                payablePayment = em.ExecuteObject <PayablePayment>(sql, new PayablePaymentMapper());

                if (payablePayment != null)
                {
                    payablePayment.PayablePaymentItems = payablePaymentItemRepository.GetByPayablePaymentId(payablePayment.ID);
                }
            }

            return(payablePayment);
        }
Ejemplo n.º 10
0
        private void tsbEdit_Click(object sender, EventArgs e)
        {
            var userAccess = userAccessRepository.GetAll();

            bool isAllowed = userAccess.Exists(u => u.FullName == Store.ActiveUser &&
                                               u.ObjectName == "Pelunasan Piutang" && u.IsEdit);

            if (isAllowed == false && Store.IsAdministrator == false)
            {
                MessageBox.Show("Anda tidak dapat merubah", "Perhatian", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            else
            {
                if (Store.IsPeriodClosed)
                {
                    MessageBox.Show("Tidak dapat menambah/ubah/hapus \n\n Periode : " + Store.GetMonthName(Store.ActiveMonth) + " " + Store.ActiveYear + "\n\n" + "Sudah Tutup Buku", "Perhatian",
                                    MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
                else
                {
                    PayablePayment payablePayment = payablePaymentRepository.GetById(new Guid(txtID.Text));
                    if (payablePayment.Notes.Contains("DIBATALKAN"))
                    {
                        MessageBox.Show("Sudah pernah di hapus ", "Perhatian",
                                        MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }
                    else
                    {
                        formMode  = FormMode.Edit;
                        this.Text = "Pelunasan Piutang - Edit";

                        EnableFormForEdit();
                    }
                }
            }
        }
Ejemplo n.º 11
0
        private void SavePayablePayment()
        {
            if (dtpDate.Value.Month != Store.ActiveMonth || dtpDate.Value.Year != Store.ActiveYear)
            {
                MessageBox.Show("Tanggal diluar periode aktif", "Info", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }

            else if (lvwPayablePayment.Items.Count == 0)
            {
                MessageBox.Show("Detail tidak boleh kosong", "Info", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            else
            {
                var payablePayment = new PayablePayment();

                payablePayment.PaymentCode     = lblCode.Text;
                payablePayment.PaymentDate     = dtpDate.Value;
                payablePayment.Notes           = txtNotes.Text;
                payablePayment.TotalCash       = decimal.Parse(lblCash.Text.Replace(".", ""));
                payablePayment.TotalBank       = decimal.Parse(lblBank.Text.Replace(".", ""));
                payablePayment.TotalGiro       = decimal.Parse(lblGiro.Text.Replace(".", ""));
                payablePayment.TotalCorrection = decimal.Parse(lblCorrection.Text.Replace(".", ""));
                payablePayment.GrandTotal      = decimal.Parse(lblTotal.Text.Replace(".", ""));


                var payablePaymentItems = new List <PayablePaymentItem>();

                foreach (ListViewItem item in lvwPayablePayment.Items)
                {
                    string salesId    = item.SubItems[0].Text;
                    string cash       = item.SubItems[2].Text;
                    string bank       = item.SubItems[3].Text;
                    string giro       = item.SubItems[4].Text;
                    string giroNumber = item.SubItems[5].Text;
                    string correction = item.SubItems[6].Text;
                    string total      = item.SubItems[7].Text;

                    PayablePaymentItem si = new PayablePaymentItem();


                    if (si.Sales == null)
                    {
                        si.Sales = new Sales();
                    }
                    si.Sales.Code = item.SubItems[1].Text;

                    si.SalesId    = new Guid(salesId);
                    si.Notes      = "";
                    si.Cash       = int.Parse(cash.Replace(".", ""));
                    si.Bank       = decimal.Parse(bank.Replace(".", ""));
                    si.Giro       = decimal.Parse(giro.Replace(".", ""));
                    si.GiroNumber = txtGiroNumber.Text;
                    si.Correction = decimal.Parse(correction.Replace(".", ""));
                    si.Total      = decimal.Parse(total.Replace(".", ""));

                    payablePaymentItems.Add(si);
                }


                payablePayment.PayablePaymentItems = payablePaymentItems;


                if (formMode == FormMode.Add)
                {
                    payablePaymentRepository.Save(payablePayment);
                    ShowPayablePaymentReport();
                    GetLastPayablePayment();
                }
                else if (formMode == FormMode.Edit)
                {
                    payablePayment.ID = new Guid(txtID.Text);

                    payablePayment.TotalCash       = decimal.Parse(lblCash.Text.Replace(".", ""));
                    payablePayment.TotalBank       = decimal.Parse(lblBank.Text.Replace(".", ""));
                    payablePayment.TotalGiro       = decimal.Parse(lblGiro.Text.Replace(".", ""));
                    payablePayment.TotalCorrection = decimal.Parse(lblCorrection.Text.Replace(".", ""));
                    payablePayment.GrandTotal      = decimal.Parse(lblTotal.Text.Replace(".", ""));


                    payablePaymentRepository.Update(payablePayment);

                    ShowPayablePaymentReport();
                }

                LoadPayablePaymentItems(new Guid(txtID.Text));
                DisableForm();
                formMode = FormMode.View;

                FillCode();
                this.Text = "Pelunasan Piutang";
            }
        }