Beispiel #1
0
        private void btnAddPayment_Click(object sender, EventArgs e)
        {
            if (isInputFieldsValid())
            {
                decimal paymentAmount = in_PaymentAmount.ValueDecimal;
                if ((PaymentMethod)cbPaymentMethods.SelectedValue == PaymentMethod.Cash && paymentAmount > _payableAmount)
                {
                    Tools.displayForm(new SharedForms.Verify_Form("KEMBALI", string.Format("Rp. {0:N0}", paymentAmount - _payableAmount), SharedForms.VerifyFormFontSize.Medium));
                    paymentAmount = _payableAmount;
                }

                if (_paymentMode == PaymentMode.VendorInvoice)
                {
                    Payment.add(_vendorInvoice.ID, (PaymentMethod)cbPaymentMethods.SelectedValue, paymentAmount, txtNotes.Text.Trim());
                }
                else if (_paymentMode == PaymentMode.SaleInvoice)
                {
                    Guid?id = Payment.add(_sale.id, (PaymentMethod)cbPaymentMethods.SelectedValue, paymentAmount, txtNotes.Text.Trim());
                    if (id != null && (PaymentMethod)cbPaymentMethods.SelectedValue == PaymentMethod.Credit)
                    {
                        CustomerCredit.submitNew((Guid)_sale.customer_id, paymentAmount * -1, id, txtNotes.Text.Trim(), null);
                    }
                }

                populateData();
                //resetData();
                txtNotes.Text   = "";
                _dataWasUpdated = true;
            }
        }
Beispiel #2
0
        private IEnumerable <CreditPaymentPlanItem> GetOverduePayments(CustomerCredit credit)
        {
            var now = GlobalValues.BankDateTime;

            return(credit.CreditPaymentPlanItems
                   .Where(item => !item.IsPaid && now > item.StartDate)
                   .ToList());
        }
Beispiel #3
0
 private void gridDetail_CellContentClick(object sender, DataGridViewCellEventArgs e)
 {
     if (Tools.isCorrectColumn(sender, e, typeof(DataGridViewLinkColumn), col_griddetail_saleBarcode.Name))
     {
         Tools.displayForm(new Sales.Invoice_Form(new Guid(gridDetail.Rows[e.RowIndex].Cells[col_griddetail_saleID.Name].Value.ToString())));
     }
     else if (LIBUtil.Util.isColumnMatch(sender, e, col_griddetail_Confirmed))
     {
         CustomerCredit.updateConfirmedStatus(LIBUtil.Util.getSelectedRowID(gridDetail, col_griddetail_Id), !LIBUtil.Util.getCheckboxValue(sender, e));
         populateGridDetail();
     }
 }
Beispiel #4
0
        /*******************************************************************************************************/
        #region ADD/UPDATE ITEM

        private void btnAddPayment_Click(object sender, EventArgs e)
        {
            if (isInputValid())
            {
                _customerID = (Guid)iddl_Customers.SelectedValue;
                CustomerCredit.submitNew((Guid)_customerID, in_Amount.ValueDecimal, null, txtNotes.Text.Trim(), (PaymentMethod)cbPaymentMethods.SelectedValue);
                populateGridDetail();

                in_Amount.reset();
                txtNotes.Text = "";
            }
        }
Beispiel #5
0
        private void populateGridDetail()
        {
            if (_customerID == null)
            {
                gridSummary.ClearSelection();
                gridDetail.DataSource = null;
            }
            else
            {
                DataGridViewRow row = Tools.findRow(gridSummary, col_gridsummary_customerid.Name, (Guid)_customerID);
                row.Selected = true;

                LIBUtil.Util.setGridviewDataSource(gridDetail, true, true, CustomerCredit.getAll(_customerID));
            }
        }
Beispiel #6
0
        private void populateData()
        {
            decimal startingBalance = 0;
            Guid    referenceId     = new Guid();

            if (_paymentMode == PaymentMode.VendorInvoice)
            {
                referenceId     = _vendorInvoice.ID;
                startingBalance = _vendorInvoice.CalculatedAmount;

                _creditBalance        = VendorDebit.getBalance(_vendorInvoice.Vendors_Id);
                lblCreditBalance.Text = String.Format("Credit {0}: Rp.{1:N2}", _vendorInvoice.VendorName, _creditBalance);
            }
            else if (_paymentMode == PaymentMode.SaleInvoice)
            {
                referenceId     = _sale.id;
                startingBalance = _sale.SaleAmount + _sale.ShippingCost;

                _creditBalance        = CustomerCredit.getBalance((Guid)_sale.customer_id);
                lblCreditBalance.Text = String.Format("Credit {0}: Rp.{1:N2}", new Customer(_sale.customer_id).Name, _creditBalance);
            }

            DataTable dataTable = Payment.get(referenceId, startingBalance);

            LIBUtil.Util.setGridviewDataSource(grid, true, true, dataTable);

            if (dataTable.Rows.Count > 0)
            {
                _payableAmount = DBUtil.parseData <decimal>(dataTable.Rows[dataTable.Rows.Count - 1], Payment.COL_Balance);
            }
            else
            {
                _payableAmount = startingBalance;
            }

            lblTotalAmount.Text = String.Format("Balance: Rp.{0:N2} / Rp.{1:N2}", _payableAmount, startingBalance);

            if (_creditBalance > 0)
            {
                cbPaymentMethods.SelectedItem = PaymentMethod.Credit;
            }
            else
            {
                cbPaymentMethods.SelectedItem = PaymentMethod.Cash;
            }

            autoSetPaymentAmount();
        }
Beispiel #7
0
        private void populateGridSummary(bool reloadFromDB)
        {
            DataView dvw;

            if (reloadFromDB)
            {
                dvw = CustomerCredit.getSummary(chkOnlyHasActivityLast3Months.Checked).DefaultView;
            }
            else
            {
                dvw = LIBUtil.Util.getDataView(gridSummary.DataSource);
            }

            dvw.RowFilter          = LIBUtil.Util.compileQuickSearchFilter(LIBUtil.Util.sanitize(txtFilter.Text), new string[] { CustomerCredit.COL_SUMMARY_CUSTOMERNAME });
            gridSummary.DataSource = dvw;
        }
Beispiel #8
0
        /*******************************************************************************************************/
        #region SUBMISSION

        private void btnSubmit_Click(object sender, EventArgs e)
        {
            if (isSaleReturnValid())
            {
                SaleReturn obj = new SaleReturn(txtNotes.Text, (DataTable)grid.DataSource);
                if (obj.submitNew() != null)
                {
                    if (_customerID != null)
                    {
                        CustomerCredit.submitNew((Guid)_customerID, _totalAmount, null, string.Format("Credit from Sale Return " + obj.barcode), PaymentMethod.Cash);
                        Tools.hasMessage("Credit sudah dibuat sejumlah " + lblTotalAmount.Text);
                    }
                    this.Close();
                }
            }
        }
Beispiel #9
0
        public CreatePaymentResponse CreatePayment(CreatePaymentRequest req)
        {
            var res = new CreatePaymentResponse();

            try
            {
                using (var idmClient = new IDMServiceClient())
                    using (var container = new TransactionModelContainer())
                    {
                        ValidateCreatePaymentRequest(idmClient, req);
                        var payment = new Payment(
                            req.CreateBy,
                            req.CustomerIDMPartyID,
                            req.CustomerName,
                            req.CustomerAddress,
                            req.PaymentItems.CreatePaymentItems()
                            );

                        var grandTotal = payment.GrandTotal();
                        var credits    = container.CustomerCredits.Where(x =>
                                                                         x.CustomerIdmPartyId == req.CustomerIDMPartyID &&
                                                                         x.IsUsedOrRefund == false).ToList();

                        var credit = credits.GetCustomerCredit(grandTotal);

                        foreach (var c in credit)
                        {
                            payment.AddPaymentItem(PaymentItem.CreateCustomerCredit(c.Id, c.Amount));
                        }

                        CustomerCredit.UpdateCustomerCredit(credit);

                        container.Payments.AddObject(payment);
                        container.SaveChanges();

                        res.SetPaymentResponse(payment);
                        res.Succeed();
                    }
            }
            catch (Exception x)
            {
                res.Fail(x);
                CreateLog(req, x);
            }

            return(res);
        }