public virtual void InsertDeposit(Model.Deposit.Deposit deposit) { if (deposit == null) { throw new ArgumentNullException("deposit", Resources.ConstDeposit); } deposit.UpdateDate = DateTime.Now; _depositDataAccess.InsertDeposit(deposit); deposit.DepositNumber = "D-00" + deposit.DepositId; _depositDataAccess.UpdateDeposit(deposit); var paymentService = ServiceFactory.GenerateServiceInstance().GeneratePaymentService(); var payment = new Model.Payments.Payment { PaymentDate = deposit.DepositDate, PaymentAmount = deposit.AmountPaidInt, SalesOrderId = deposit.DepositId, CashierId = deposit.CashierId }; paymentService.ManagePayment(Resources.OperationRequestInsert, payment); }
public virtual Model.SaleOrder.SaleOrder GetSaleOrder(Model.Deposit.Deposit deposit) { if (deposit == null) { throw new ArgumentNullException("deposit", Resources.MsgInvalidDeposit); } var saleOrder = new Model.SaleOrder.SaleOrder { AmountPaidInt = deposit.AmountPaidInt, AmountPaidRiel = deposit.AmountPaidRiel, AmountReturnInt = deposit.AmountReturnInt, AmountReturnRiel = deposit.AmountReturnRiel, AmountSoldInt = deposit.AmountSoldInt, AmountSoldRiel = deposit.AmountSoldRiel, CardNumber = deposit.CardNumber, CashierId = deposit.CashierId, CurrencyId = deposit.CurrencyId, CustomerId = deposit.CustomerId, DelivererId = deposit.DelivererId, Description = deposit.Description, Discount = deposit.Discount, DiscountTypeId = deposit.DiscountTypeId, ExchangeRate = deposit.ExchangeRate, FkCustomer = deposit.FkCustomer, PaymentTypeId = deposit.PaymentTypeId, ReferenceNum = deposit.ReferenceNum, SaleOrderDate = deposit.DepositDate, SaleOrderTypeId = deposit.DepositTypeId }; return(saleOrder); }
public virtual Model.Deposit.Deposit RecordDeposit( IList depositItemList, float totalAmountInt, float totalAmountPaidInt, float totalAmountPaidRiel, Model.Customer.Customer customer, string referenceNum, float discount, bool isReturned) { if (depositItemList == null) throw new ArgumentNullException("depositItemList", Resources.ConstDepositItem); var factor = 1; if (isReturned) factor = -1; //Deposit var deposit = new Model.Deposit.Deposit { DepositDate = DateTime.Now, DepositTypeId = isReturned ? 1 : 0, CustomerId = customer.CustomerId, CashierId = AppContext.User.UserId, DelivererId = 0, Description = string.Empty, PaymentTypeId = 0, CurrencyId = 0, ExchangeRate = (AppContext.ExchangeRate == null ? 0 : AppContext.ExchangeRate.ExchangeValue), AmountSoldInt = isReturned ? totalAmountInt : (totalAmountInt - ((totalAmountInt * discount) / 100)), AmountPaidInt = totalAmountPaidInt, AmountPaidRiel = totalAmountPaidRiel, Discount = discount }; deposit.AmountReturnInt = totalAmountPaidInt - deposit.AmountSoldInt; deposit.AmountSoldInt *= factor; deposit.AmountPaidInt *= factor; deposit.AmountReturnInt *= factor; deposit.AmountSoldRiel = deposit.AmountSoldInt * deposit.ExchangeRate; deposit.AmountReturnRiel = deposit.AmountReturnInt * deposit.ExchangeRate; if (customer.FkDiscountCard != null) { deposit.DiscountTypeId = customer.FkDiscountCard.DiscountCardTypeId; deposit.CardNumber = customer.FkDiscountCard.CardNumber; } deposit.ReferenceNum = referenceNum; //Deposit InsertDeposit(deposit); //Customer var customerService = ServiceFactory.GenerateServiceInstance().GenerateCustomerService(); customer.DebtAmount += deposit.AmountReturnInt; if (isReturned) customer.PurchasedAmount += deposit.AmountPaidInt; customerService.CustomerManagement( customer, Resources.OperationRequestUpdate); //localy update SaleOrder deposit.FkCustomer = customer; //Deposit item if (!isReturned) { foreach (DepositItem depositItem in depositItemList) { if (depositItem.ProductId == 0) continue; depositItem.DepositId = deposit.DepositId; _depositDataAccess.InsertDepositItem(depositItem); } } return deposit; }
public virtual Model.Deposit.Deposit RecordDeposit( IList depositItemList, float totalAmountInt, float totalAmountPaidInt, float totalAmountPaidRiel, Model.Customer.Customer customer, string referenceNum, float discount, bool isReturned) { if (depositItemList == null) { throw new ArgumentNullException("depositItemList", Resources.ConstDepositItem); } var factor = 1; if (isReturned) { factor = -1; } //Deposit var deposit = new Model.Deposit.Deposit { DepositDate = DateTime.Now, DepositTypeId = isReturned ? 1 : 0, CustomerId = customer.CustomerId, CashierId = AppContext.User.UserId, DelivererId = 0, Description = string.Empty, PaymentTypeId = 0, CurrencyId = 0, ExchangeRate = (AppContext.ExchangeRate == null ? 0 : AppContext.ExchangeRate.ExchangeValue), AmountSoldInt = isReturned ? totalAmountInt : (totalAmountInt - ((totalAmountInt * discount) / 100)), AmountPaidInt = totalAmountPaidInt, AmountPaidRiel = totalAmountPaidRiel, Discount = discount }; deposit.AmountReturnInt = totalAmountPaidInt - deposit.AmountSoldInt; deposit.AmountSoldInt *= factor; deposit.AmountPaidInt *= factor; deposit.AmountReturnInt *= factor; deposit.AmountSoldRiel = deposit.AmountSoldInt * deposit.ExchangeRate; deposit.AmountReturnRiel = deposit.AmountReturnInt * deposit.ExchangeRate; if (customer.FkDiscountCard != null) { deposit.DiscountTypeId = customer.FkDiscountCard.DiscountCardTypeId; deposit.CardNumber = customer.FkDiscountCard.CardNumber; } deposit.ReferenceNum = referenceNum; //Deposit InsertDeposit(deposit); //Customer var customerService = ServiceFactory.GenerateServiceInstance().GenerateCustomerService(); customer.DebtAmount += deposit.AmountReturnInt; if (isReturned) { customer.PurchasedAmount += deposit.AmountPaidInt; } customerService.CustomerManagement( customer, Resources.OperationRequestUpdate); //localy update SaleOrder deposit.FkCustomer = customer; //Deposit item if (!isReturned) { foreach (DepositItem depositItem in depositItemList) { if (depositItem.ProductId == 0) { continue; } depositItem.DepositId = deposit.DepositId; _depositDataAccess.InsertDepositItem(depositItem); } } return(deposit); }
public virtual void UpdateDeposit(Model.Deposit.Deposit deposit) { _depositDataAccess.UpdateDeposit(deposit); }
public virtual void InsertDeposit(Model.Deposit.Deposit deposit) { InsertObject(deposit); }
public virtual void UpdateDeposit(Model.Deposit.Deposit deposit) { UpdateObject(deposit); }