public dynamic Insert(CustomPurchaseInvoice model)
        {
            try
            {
                if (!AuthenticationModel.IsAllowed("Create", Core.Constants.Constant.MenuName.CustomPurchaseInvoice, Core.Constants.Constant.MenuGroupName.Transaction))
                {
                    Dictionary <string, string> Errors = new Dictionary <string, string>();
                    Errors.Add("Generic", "You are Not Allowed to Add record");

                    return(Json(new
                    {
                        Errors
                    }, JsonRequestBehavior.AllowGet));
                }

                model = _customPurchaseInvoiceService.CreateObject(model, _warehouseService, _contactService, _cashBankService);
            }
            catch (Exception ex)
            {
                LOG.Error("Insert Failed", ex);
                Dictionary <string, string> Errors = new Dictionary <string, string>();
                Errors.Add("Generic", "Error " + ex);

                return(Json(new
                {
                    Errors
                }, JsonRequestBehavior.AllowGet));
            }

            return(Json(new
            {
                model.Errors
            }));
        }
        public dynamic Delete(CustomPurchaseInvoice model)
        {
            try
            {
                if (!AuthenticationModel.IsAllowed("Delete", Core.Constants.Constant.MenuName.CustomPurchaseInvoice, Core.Constants.Constant.MenuGroupName.Transaction))
                {
                    Dictionary <string, string> Errors = new Dictionary <string, string>();
                    Errors.Add("Generic", "You are Not Allowed to Delete Record");

                    return(Json(new
                    {
                        Errors
                    }, JsonRequestBehavior.AllowGet));
                }

                var data = _customPurchaseInvoiceService.GetObjectById(model.Id);
                model = _customPurchaseInvoiceService.SoftDeleteObject(data, _customPurchaseInvoiceDetailService);
            }
            catch (Exception ex)
            {
                LOG.Error("Delete Failed", ex);
                Dictionary <string, string> Errors = new Dictionary <string, string>();
                Errors.Add("Generic", "Error " + ex);

                return(Json(new
                {
                    Errors
                }, JsonRequestBehavior.AllowGet));
            }

            return(Json(new
            {
                model.Errors
            }));
        }
 public bool ValidPaidObject(CustomPurchaseInvoice customPurchaseInvoice, ICashBankService _cashBankService, IPaymentVoucherService _paymentVoucherService,
                             IClosingService _closingService)
 {
     customPurchaseInvoice.Errors.Clear();
     VPaidObject(customPurchaseInvoice, _cashBankService, _paymentVoucherService, _closingService);
     return(isValid(customPurchaseInvoice));
 }
 public bool ValidUpdateObject(CustomPurchaseInvoice customPurchaseInvoice, ICustomPurchaseInvoiceDetailService _customPurchaseInvoiceDetailService,
                               IWarehouseService _warehouseService, IContactService _contactService, ICashBankService _cashBankService)
 {
     customPurchaseInvoice.Errors.Clear();
     VUpdateObject(customPurchaseInvoice, _customPurchaseInvoiceDetailService, _warehouseService, _contactService, _cashBankService);
     return(isValid(customPurchaseInvoice));
 }
 public CustomPurchaseInvoice VUnconfirmObject(CustomPurchaseInvoice customPurchaseInvoice, ICustomPurchaseInvoiceDetailService _customPurchaseInvoiceDetailService,
                                               IPayableService _payableService, IPaymentVoucherDetailService _paymentVoucherDetailService, IClosingService _closingService)
 {
     VIsNotDeleted(customPurchaseInvoice);
     if (!isValid(customPurchaseInvoice))
     {
         return(customPurchaseInvoice);
     }
     VIsConfirmed(customPurchaseInvoice);
     if (!isValid(customPurchaseInvoice))
     {
         return(customPurchaseInvoice);
     }
     VIsNotPaid(customPurchaseInvoice);
     if (!isValid(customPurchaseInvoice))
     {
         return(customPurchaseInvoice);
     }
     VIsUnconfirmableCustomPurchaseInvoiceDetails(customPurchaseInvoice, _customPurchaseInvoiceDetailService);
     if (!isValid(customPurchaseInvoice))
     {
         return(customPurchaseInvoice);
     }
     VHasNoPaymentVoucherDetails(customPurchaseInvoice, _payableService, _paymentVoucherDetailService);
     if (!isValid(customPurchaseInvoice))
     {
         return(customPurchaseInvoice);
     }
     VGeneralLedgerPostingHasNotBeenClosed(customPurchaseInvoice, _closingService, 2);
     return(customPurchaseInvoice);
 }
示例#6
0
        public CustomPurchaseInvoice UnpaidObject(CustomPurchaseInvoice customPurchaseInvoice, IPaymentVoucherService _paymentVoucherService,
                                                  IPaymentVoucherDetailService _paymentVoucherDetailService, ICashBankService _cashBankService, IPayableService _payableService,
                                                  ICashMutationService _cashMutationService, IGeneralLedgerJournalService _generalLedgerJournalService, IAccountService _accountService,
                                                  IClosingService _closingService)
        {
            if (_validator.ValidUnpaidObject(customPurchaseInvoice, _closingService))
            {
                Payable payable = _payableService.GetObjectBySource(Core.Constants.Constant.PayableSource.CustomPurchaseInvoice, customPurchaseInvoice.Id);
                IList <PaymentVoucher> paymentVouchers = _paymentVoucherService.GetObjectsByCashBankId((int)customPurchaseInvoice.CashBankId.GetValueOrDefault());
                foreach (var paymentVoucher in paymentVouchers)
                {
                    if (paymentVoucher.ContactId == customPurchaseInvoice.ContactId)
                    {
                        paymentVoucher.Errors = new Dictionary <string, string>();
                        _paymentVoucherService.UnconfirmObject(paymentVoucher, _paymentVoucherDetailService, _cashBankService,
                                                               _payableService, _cashMutationService, _generalLedgerJournalService, _accountService, _closingService);

                        IList <PaymentVoucherDetail> paymentVoucherDetails = _paymentVoucherDetailService.GetObjectsByPaymentVoucherId(paymentVoucher.Id);
                        foreach (var paymentVoucherDetail in paymentVoucherDetails)
                        {
                            paymentVoucherDetail.Errors = new Dictionary <string, string>();
                            _paymentVoucherDetailService.SoftDeleteObject(paymentVoucherDetail);
                        }
                        _paymentVoucherService.SoftDeleteObject(paymentVoucher, _paymentVoucherDetailService);
                    }
                }
                customPurchaseInvoice.AmountPaid    = 0;
                customPurchaseInvoice.IsFullPayment = false;
                _generalLedgerJournalService.CreateUnpaidJournalForCustomPurchaseInvoice(customPurchaseInvoice, _accountService);
                customPurchaseInvoice = _repository.UnpaidObject(customPurchaseInvoice);
            }
            return(customPurchaseInvoice);
        }
 public bool ValidUnconfirmObject(CustomPurchaseInvoice customPurchaseInvoice, ICustomPurchaseInvoiceDetailService _customPurchaseInvoiceDetailService,
                                  IPayableService _payableService, IPaymentVoucherDetailService _paymentVoucherDetailService, IClosingService _closingService)
 {
     customPurchaseInvoice.Errors.Clear();
     VUnconfirmObject(customPurchaseInvoice, _customPurchaseInvoiceDetailService, _payableService, _paymentVoucherDetailService, _closingService);
     return(isValid(customPurchaseInvoice));
 }
示例#8
0
 public CustomPurchaseInvoice ConfirmObject(CustomPurchaseInvoice customPurchaseInvoice, DateTime ConfirmationDate, ICustomPurchaseInvoiceDetailService _customPurchaseInvoiceDetailService,
                                            IContactService _contactService, IPriceMutationService _priceMutationService, IPayableService _payableService,
                                            ICustomPurchaseInvoiceService _customPurchaseInvoiceService, IWarehouseItemService _warehouseItemService,
                                            IWarehouseService _warehouseService, IItemService _itemService, IBarringService _barringService, IStockMutationService _stockMutationService,
                                            IGeneralLedgerJournalService _generalLedgerJournalService, IAccountService _accountService, IClosingService _closingService)
 {
     customPurchaseInvoice.ConfirmationDate = ConfirmationDate;
     if (_validator.ValidConfirmObject(customPurchaseInvoice, _customPurchaseInvoiceDetailService, _customPurchaseInvoiceService, _warehouseItemService, _contactService, _closingService))
     {
         IList <CustomPurchaseInvoiceDetail> customPurchaseInvoiceDetails = _customPurchaseInvoiceDetailService.GetObjectsByCustomPurchaseInvoiceId(customPurchaseInvoice.Id);
         customPurchaseInvoice.Total = 0;
         customPurchaseInvoice.CoGS  = 0;
         foreach (var customPurchaseInvoiceDetail in customPurchaseInvoiceDetails)
         {
             customPurchaseInvoiceDetail.Errors = new Dictionary <string, string>();
             _customPurchaseInvoiceDetailService.ConfirmObject(customPurchaseInvoiceDetail, _customPurchaseInvoiceService, _warehouseItemService,
                                                               _warehouseService, _itemService, _barringService, _stockMutationService, _priceMutationService);
             customPurchaseInvoice.Total += customPurchaseInvoiceDetail.Amount;
             customPurchaseInvoice.CoGS  += customPurchaseInvoiceDetail.CoGS;
         }
         // Tax dihitung setelah discount
         //customPurchaseInvoice.Total = (customPurchaseInvoice.Total * (100 - customPurchaseInvoice.Discount) / 100) * (100 - customPurchaseInvoice.Tax) / 100;
         customPurchaseInvoice.Total = CalculateTotalAmountAfterDiscountAndTax(customPurchaseInvoice);
         Payable payable = _payableService.CreateObject(customPurchaseInvoice.ContactId, Core.Constants.Constant.PayableSource.CustomPurchaseInvoice, customPurchaseInvoice.Id, customPurchaseInvoice.Code, customPurchaseInvoice.Total, (DateTime)customPurchaseInvoice.DueDate.GetValueOrDefault());
         _generalLedgerJournalService.CreateConfirmationJournalForCustomPurchaseInvoice(customPurchaseInvoice, _accountService);
         customPurchaseInvoice = _repository.ConfirmObject(customPurchaseInvoice);
     }
     else
     {
         customPurchaseInvoice.ConfirmationDate = null;
     }
     return(customPurchaseInvoice);
 }
 public CustomPurchaseInvoice VIsValidDiscount(CustomPurchaseInvoice customPurchaseInvoice)
 {
     if (customPurchaseInvoice.Discount < 0 || customPurchaseInvoice.Discount > 100)
     {
         customPurchaseInvoice.Errors.Add("Discount", "Harus diantara 0 sampai 100");
     }
     return(customPurchaseInvoice);
 }
 public CustomPurchaseInvoice VIsNotDeleted(CustomPurchaseInvoice customPurchaseInvoice)
 {
     if (customPurchaseInvoice.IsDeleted)
     {
         customPurchaseInvoice.Errors.Add("Generic", "CustomPurchaseInvoice tidak boleh terhapus");
     }
     return(customPurchaseInvoice);
 }
 public CustomPurchaseInvoice VIsValidFullPayment(CustomPurchaseInvoice customPurchaseInvoice)
 {
     if (customPurchaseInvoice.AmountPaid != customPurchaseInvoice.Total)
     {
         customPurchaseInvoice.Errors.Add("AmountPaid", "Harus sama dengan Total Payable");
     }
     return(customPurchaseInvoice);
 }
 public CustomPurchaseInvoice VIsValidAmountPaid(CustomPurchaseInvoice customPurchaseInvoice)
 {
     if (customPurchaseInvoice.AmountPaid > customPurchaseInvoice.Total)
     {
         customPurchaseInvoice.Errors.Add("AmountPaid", "Harus lebih kecil atau sama dengan Total Payable");
     }
     return(customPurchaseInvoice);
 }
 public CustomPurchaseInvoice VIsValidGBCH_DueDate(CustomPurchaseInvoice customPurchaseInvoice)
 {
     if (customPurchaseInvoice.IsGBCH && (customPurchaseInvoice.GBCH_DueDate == null || customPurchaseInvoice.GBCH_DueDate.Equals(DateTime.FromBinary(0))))
     {
         customPurchaseInvoice.Errors.Add("GBCH_DueDate", "Tidak ada");
     }
     return(customPurchaseInvoice);
 }
 public CustomPurchaseInvoice VIsValidGBCH_No(CustomPurchaseInvoice customPurchaseInvoice)
 {
     if (customPurchaseInvoice.IsGBCH && customPurchaseInvoice.GBCH_No.Trim() == "")
     {
         customPurchaseInvoice.Errors.Add("GBCH_No", "Tidak ada");
     }
     return(customPurchaseInvoice);
 }
 public CustomPurchaseInvoice VIsConfirmed(CustomPurchaseInvoice customPurchaseInvoice)
 {
     if (!customPurchaseInvoice.IsConfirmed)
     {
         customPurchaseInvoice.Errors.Add("Generic", "CustomPurchaseInvoice tidak terkonfirmasi");
     }
     return(customPurchaseInvoice);
 }
 public CustomPurchaseInvoice VIsPaid(CustomPurchaseInvoice customPurchaseInvoice)
 {
     if (!customPurchaseInvoice.IsPaid)
     {
         customPurchaseInvoice.Errors.Add("Generic", "CustomPurchaseInvoice belum dibayar");
     }
     return(customPurchaseInvoice);
 }
 public CustomPurchaseInvoice VIsNotPaid(CustomPurchaseInvoice customPurchaseInvoice)
 {
     if (customPurchaseInvoice.IsPaid)
     {
         customPurchaseInvoice.Errors.Add("Generic", "CustomPurchaseInvoice sudah terbayar");
     }
     return(customPurchaseInvoice);
 }
 public CustomPurchaseInvoice VHasPurchaseDate(CustomPurchaseInvoice customPurchaseInvoice)
 {
     if (customPurchaseInvoice.PurchaseDate == null || customPurchaseInvoice.PurchaseDate.Equals(DateTime.FromBinary(0)))
     {
         customPurchaseInvoice.Errors.Add("PurchaseDate", "Tidak ada");
     }
     return(customPurchaseInvoice);
 }
 public CustomPurchaseInvoice VIsValidTax(CustomPurchaseInvoice customPurchaseInvoice)
 {
     if (customPurchaseInvoice.Tax < 0 || customPurchaseInvoice.Tax > 100)
     {
         customPurchaseInvoice.Errors.Add("Tax", "Harus diantara 0 sampai 100");
     }
     return(customPurchaseInvoice);
 }
 public bool ValidConfirmObject(CustomPurchaseInvoice customPurchaseInvoice, ICustomPurchaseInvoiceDetailService _customPurchaseInvoiceDetailService,
                                ICustomPurchaseInvoiceService _customPurchaseInvoiceService, IWarehouseItemService _warehouseItemService,
                                IContactService _contactService, IClosingService _closingService)
 {
     customPurchaseInvoice.Errors.Clear();
     VConfirmObject(customPurchaseInvoice, _customPurchaseInvoiceDetailService, _customPurchaseInvoiceService, _warehouseItemService,
                    _contactService, _closingService);
     return(isValid(customPurchaseInvoice));
 }
        public CustomPurchaseInvoice VHasNoCustomPurchaseInvoiceDetails(CustomPurchaseInvoice customPurchaseInvoice, ICustomPurchaseInvoiceDetailService _customPurchaseInvoiceDetailService)
        {
            IList <CustomPurchaseInvoiceDetail> customPurchaseInvoiceDetails = _customPurchaseInvoiceDetailService.GetObjectsByCustomPurchaseInvoiceId(customPurchaseInvoice.Id);

            if (customPurchaseInvoiceDetails.Any())
            {
                customPurchaseInvoice.Errors.Add("Generic", "Tidak boleh terasosiasi dengan CustomPurchaseInvoiceDetails");
            }
            return(customPurchaseInvoice);
        }
        public CustomPurchaseInvoice VHasContact(CustomPurchaseInvoice customPurchaseInvoice, IContactService _contactService)
        {
            Contact contact = _contactService.GetObjectById(customPurchaseInvoice.ContactId);

            if (contact == null)
            {
                customPurchaseInvoice.Errors.Add("Contact", "Tidak valid");
            }
            return(customPurchaseInvoice);
        }
        public CustomPurchaseInvoice VHasWarehouse(CustomPurchaseInvoice customPurchaseInvoice, IWarehouseService _warehouseService)
        {
            Warehouse warehouse = _warehouseService.GetObjectById(customPurchaseInvoice.WarehouseId);

            if (warehouse == null)
            {
                customPurchaseInvoice.Errors.Add("WarehouseId", "Tidak valid");
            }
            return(customPurchaseInvoice);
        }
        public CustomPurchaseInvoice VHasCashBank(CustomPurchaseInvoice customPurchaseInvoice, ICashBankService _cashBankService)
        {
            CashBank cashBank = _cashBankService.GetObjectById((int)customPurchaseInvoice.CashBankId.GetValueOrDefault());

            if (cashBank == null)
            {
                customPurchaseInvoice.Errors.Add("CashBankId", "Tidak valid");
            }
            return(customPurchaseInvoice);
        }
        public CustomPurchaseInvoice VHasCustomPurchaseInvoiceDetails(CustomPurchaseInvoice customPurchaseInvoice, ICustomPurchaseInvoiceDetailService _customPurchaseInvoiceDetailService)
        {
            IList <CustomPurchaseInvoiceDetail> customPurchaseInvoiceDetails = _customPurchaseInvoiceDetailService.GetObjectsByCustomPurchaseInvoiceId(customPurchaseInvoice.Id);

            if (!customPurchaseInvoiceDetails.Any())
            {
                customPurchaseInvoice.Errors.Add("Generic", "Tidak ada retail purchase invoice details");
            }
            return(customPurchaseInvoice);
        }
 public CustomPurchaseInvoice VUnpaidObject(CustomPurchaseInvoice customPurchaseInvoice, IClosingService _closingService)
 {
     VIsPaid(customPurchaseInvoice);
     if (!isValid(customPurchaseInvoice))
     {
         return(customPurchaseInvoice);
     }
     VGeneralLedgerPostingHasNotBeenClosed(customPurchaseInvoice, _closingService, 4);
     return(customPurchaseInvoice);
 }
示例#27
0
        public CustomPurchaseInvoiceDetail VHasCustomPurchaseInvoice(CustomPurchaseInvoiceDetail customPurchaseInvoiceDetail, ICustomPurchaseInvoiceService _customPurchaseInvoiceService)
        {
            CustomPurchaseInvoice customPurchaseInvoice = _customPurchaseInvoiceService.GetObjectById(customPurchaseInvoiceDetail.CustomPurchaseInvoiceId);

            if (customPurchaseInvoice == null)
            {
                customPurchaseInvoiceDetail.Errors.Add("CustomPurchaseInvoiceId", "Tidak valid");
            }
            return(customPurchaseInvoiceDetail);
        }
        public CustomPurchaseInvoice VIsCashBankTypeBank(CustomPurchaseInvoice customPurchaseInvoice, ICashBankService _cashBankService)
        {
            CashBank cashBank = _cashBankService.GetObjectById((int)customPurchaseInvoice.CashBankId.GetValueOrDefault());

            if (!cashBank.IsBank)
            {
                customPurchaseInvoice.Errors.Add("Generic", "CashBank bukan tipe Bank");
                return(customPurchaseInvoice);
            }
            return(customPurchaseInvoice);
        }
 public CustomPurchaseInvoiceDetail SoftDeleteObject(CustomPurchaseInvoiceDetail customPurchaseInvoiceDetail, ICustomPurchaseInvoiceService _customPurchaseInvoiceService)
 {
     if (_validator.ValidDeleteObject(customPurchaseInvoiceDetail, _customPurchaseInvoiceService))
     {
         CustomPurchaseInvoice customPurchaseInvoice = _customPurchaseInvoiceService.GetObjectById(customPurchaseInvoiceDetail.CustomPurchaseInvoiceId);
         _repository.SoftDeleteObject(customPurchaseInvoiceDetail);
         customPurchaseInvoice.Total = CalculateTotal(customPurchaseInvoiceDetail.CustomPurchaseInvoiceId);
         customPurchaseInvoice.CoGS  = CalculateCoGS(customPurchaseInvoiceDetail.CustomPurchaseInvoiceId);
         _customPurchaseInvoiceService.GetRepository().Update(customPurchaseInvoice);
     }
     return(customPurchaseInvoiceDetail);
 }
 public CustomPurchaseInvoice VHasConfirmationDate(CustomPurchaseInvoice customPurchaseInvoice)
 {
     if (customPurchaseInvoice.ConfirmationDate == null || customPurchaseInvoice.ConfirmationDate.Equals(DateTime.FromBinary(0)))
     {
         customPurchaseInvoice.Errors.Add("ConfirmationDate", "Tidak ada");
     }
     //else if (customPurchaseInvoice.ConfirmationDate.GetValueOrDefault().Date.AddDays(1) < customPurchaseInvoice.PurchaseDate.Date)
     //{
     //    customPurchaseInvoice.Errors.Add("ConfirmationDate", "Harus lebih besar atau sama dengan Purchase Date");
     //}
     return(customPurchaseInvoice);
 }