public void MapToContract_AllFieldsMapped_Correctly() { var salesInvoiceDetail = new SalesInvoiceDetail() { row_order = 2, product_id = 3, amount = "100", description = "tests", ledger_account_id = 999, tax_rate_id = "5", price = 123, period = "day" }; var result = _mapper.MapToContract(salesInvoiceDetail); var expectedResult = new Contract.Model.SalesInvoiceDetail() { Amount = salesInvoiceDetail.amount, Description = salesInvoiceDetail.description, LedgerAccountId = salesInvoiceDetail.ledger_account_id, Period = salesInvoiceDetail.period, Price = salesInvoiceDetail.price, ProductId = salesInvoiceDetail.product_id, RowOrder = salesInvoiceDetail.row_order, TaxRateId = salesInvoiceDetail.tax_rate_id }; result.Should().BeEquivalentTo(expectedResult); }
public int AddSalesInvoiceDetail(SalesInvoiceDetail SID) { IDBManager dbm = new DBManager(); try { dbm.CreateParameters(9); dbm.AddParameters(0, "InvoiceID", SID.InvoiceID); dbm.AddParameters(1, "Quantity", SID.Quantity); dbm.AddParameters(2, "ProductID", SID.ProductID); dbm.AddParameters(3, "@SpecialOfferID", SID.SpecialOfferID); dbm.AddParameters(4, "@UnitPrice", SID.UnitPrice); dbm.AddParameters(5, "@UnitPriceDiscount", SID.UnitPriceDiscount); dbm.AddParameters(6, "@LineTotal", SID.LineTotal); dbm.AddParameters(7, "@ModifiedDate", DateTime.Now); dbm.AddParameters(8, "@InvoiceDetailID", SID.InvoiceDetailID); dbm.Parameters[8].Direction = ParameterDirection.Output; dbm.ExecuteNonQuery(CommandType.StoredProcedure, "InsertSalesInvoiceDetail"); SID.InvoiceDetailID = Int32.Parse(dbm.Parameters[8].Value.ToString()); } catch (Exception ex) { log.Write(ex.Message, "InsertSalesInvoiceDetail"); throw (ex); } finally { dbm.Dispose(); } return(SID.InvoiceDetailID); }
public void MapToApi_AllFieldsMapped_Correctly() { var salesInvoiceDetail = new Contract.Model.SalesInvoiceDetail { RowOrder = 2, ProductId = 3, Amount = "100", Description = "tests", LedgerAccountId = 999, TaxRateId = "5", Price = 123, Period = "day" }; var result = _mapper.MapToApi(salesInvoiceDetail, null); var expectedResult = new SalesInvoiceDetail { amount = salesInvoiceDetail.Amount, description = salesInvoiceDetail.Description, ledger_account_id = salesInvoiceDetail.LedgerAccountId, period = salesInvoiceDetail.Period, price = salesInvoiceDetail.Price, product_id = salesInvoiceDetail.ProductId, row_order = salesInvoiceDetail.RowOrder, tax_rate_id = salesInvoiceDetail.TaxRateId }; result.Should().BeEquivalentTo(expectedResult); }
public SalesInvoiceDetail GetSalesInvoiceDetail(int @InvoiceDetailID) { IDBManager dbm = new DBManager(); SalesInvoiceDetail SID = new SalesInvoiceDetail(); try { dbm.CreateParameters(1); dbm.AddParameters(0, "@InvoiceDetailID", @InvoiceDetailID); IDataReader reader = dbm.ExecuteReader(CommandType.StoredProcedure, "SelectSalesInvoiceDetail"); while (reader.Read()) { SID.@InvoiceDetailID = Int32.Parse(reader["@InvoiceDetailID"].ToString()); SID.InvoiceID = Int32.Parse(reader["InvoiceID"].ToString()); SID.Quantity = short.Parse(reader["Quantity"].ToString()); SID.ProductID = Int32.Parse(reader["ProductID"].ToString()); SID.SpecialOfferID = Int32.Parse(reader[""].ToString()); SID.UnitPrice = decimal.Parse(reader[""].ToString()); SID.UnitPriceDiscount = decimal.Parse(reader[""].ToString()); SID.LineTotal = decimal.Parse(reader[""].ToString()); SID.ModifiedDate = DateTime.Parse(reader["ModifiedDate"].ToString()); } } catch (Exception ex) { log.Write(ex.Message, "GetSalesInvoiceDetail"); throw (ex); } finally { dbm.Dispose(); } return(SID); }
public bool UpdateSalesInvoiceDetail(SalesInvoiceDetail SID) { IDBManager dbm = new DBManager(); try { dbm.CreateParameters(9); dbm.AddParameters(0, "@InvoiceDetailID", SID.InvoiceDetailID); dbm.AddParameters(1, "InvoiceID", SID.InvoiceID); dbm.AddParameters(2, "Quantity", SID.Quantity); dbm.AddParameters(3, "ProductID", SID.ProductID); dbm.AddParameters(4, "@SpecialOfferID", SID.SpecialOfferID); dbm.AddParameters(5, "@UnitPrice", SID.UnitPrice); dbm.AddParameters(6, "@UnitPriceDiscount", SID.UnitPriceDiscount); dbm.AddParameters(7, "@LineTotal", SID.LineTotal); dbm.AddParameters(8, "@ModifiedDate", DateTime.Now); dbm.ExecuteNonQuery(CommandType.StoredProcedure, "UpdateSalesInvoiceDetail"); } catch (Exception ex) { log.Write(ex.Message, "UpdateSalesInvoiceDetail"); throw (ex); } finally { dbm.Dispose(); } return(true); }
public SalesInvoiceDetail VCreateObject(SalesInvoiceDetail salesInvoiceDetail, ISalesInvoiceService _salesInvoiceService, ISalesInvoiceDetailService _salesInvoiceDetailService, IDeliveryOrderDetailService _deliveryOrderDetailService) { VHasSalesInvoice(salesInvoiceDetail, _salesInvoiceService); if (!isValid(salesInvoiceDetail)) { return(salesInvoiceDetail); } VHasDeliveryOrderDetail(salesInvoiceDetail, _deliveryOrderDetailService); if (!isValid(salesInvoiceDetail)) { return(salesInvoiceDetail); } VDeliveryOrderDetailAndSalesInvoiceMustHaveTheSameDeliveryOrder(salesInvoiceDetail, _deliveryOrderDetailService, _salesInvoiceService); if (!isValid(salesInvoiceDetail)) { return(salesInvoiceDetail); } VIsUniqueDeliveryOrderDetail(salesInvoiceDetail, _salesInvoiceDetailService, _deliveryOrderDetailService); if (!isValid(salesInvoiceDetail)) { return(salesInvoiceDetail); } VNonNegativeNorZeroQuantity(salesInvoiceDetail); if (!isValid(salesInvoiceDetail)) { return(salesInvoiceDetail); } VQuantityIsLessThanOrEqualPendingInvoiceQuantity(salesInvoiceDetail, _deliveryOrderDetailService); return(salesInvoiceDetail); }
public dynamic GetInfoDetail(int Id) { SalesInvoiceDetail model = new SalesInvoiceDetail(); try { model = _salesInvoiceDetailService.GetObjectById(Id); } catch (Exception ex) { LOG.Error("GetInfo", ex); Dictionary <string, string> Errors = new Dictionary <string, string>(); Errors.Add("Generic", "Error " + ex); return(Json(new { Errors }, JsonRequestBehavior.AllowGet)); } return(Json(new { model.Id, model.Code, model.DeliveryOrderDetailId, DeliveryOrderDetail = _deliveryOrderDetailService.GetObjectById(model.DeliveryOrderDetailId).Code, model.Quantity, model.Amount, model.Errors }, JsonRequestBehavior.AllowGet)); }
protected SalesInvoiceDetail SalesInvoiceDetailModel() { mySalesInvoiceDetail = new SalesInvoiceDetail(); if (HidenIdpurchasInvDe.Value != "0") { mySalesInvoiceDetail.ID = Convert.ToInt32(HidenIdpurchasInvDe.Value); } // if (ProductListtxt.SelectedValue != "") { mySalesInvoiceDetail.ProductID = ProductListtxt.SelectedValue; } // if (ProductPrice.Text != "") { mySalesInvoiceDetail.ProductPrice = Convert.ToDouble(ProductPrice.Text); } // if (Qty.Text != "") { mySalesInvoiceDetail.Qty = Convert.ToDouble(Qty.Text); } mySalesInvoiceDetail.PricePerRecord = Convert.ToDouble(mySalesInvoiceDetail.Qty * mySalesInvoiceDetail.ProductPrice); return(mySalesInvoiceDetail); }
public SalesInvoiceDetail VHasNotBeenConfirmed(SalesInvoiceDetail salesInvoiceDetail) { if (salesInvoiceDetail.IsConfirmed) { salesInvoiceDetail.Errors.Add("Generic", "Sudah dikonfirmasi"); } return(salesInvoiceDetail); }
public SalesInvoiceDetail VHasBeenConfirmed(SalesInvoiceDetail salesInvoiceDetail) { if (!salesInvoiceDetail.IsConfirmed) { salesInvoiceDetail.Errors.Add("Generic", "Belum dikonfirmasi"); } return(salesInvoiceDetail); }
public SalesInvoiceDetail VNonNegativeNorZeroQuantity(SalesInvoiceDetail salesInvoiceDetail) { if (salesInvoiceDetail.Quantity <= 0) { salesInvoiceDetail.Errors.Add("Quantity", "Harus lebih besar dari 0"); } return(salesInvoiceDetail); }
public SalesInvoiceDetail VHasConfirmationDate(SalesInvoiceDetail obj) { if (obj.ConfirmationDate == null) { obj.Errors.Add("ConfirmationDate", "Tidak boleh kosong"); } return(obj); }
public SalesInvoiceDetail VHasDeliveryOrderDetail(SalesInvoiceDetail salesInvoiceDetail, IDeliveryOrderDetailService _deliveryOrderDetailService) { DeliveryOrderDetail deliveryOrderDetail = _deliveryOrderDetailService.GetObjectById(salesInvoiceDetail.DeliveryOrderDetailId); if (deliveryOrderDetail == null) { salesInvoiceDetail.Errors.Add("DeliveryOrderDetailId", "Tidak boleh tidak ada"); } return(salesInvoiceDetail); }
public SalesInvoiceDetail VQuantityIsLessThanOrEqualPendingInvoiceQuantity(SalesInvoiceDetail salesInvoiceDetail, IDeliveryOrderDetailService _deliveryOrderDetailService) { DeliveryOrderDetail deliveryOrderDetail = _deliveryOrderDetailService.GetObjectById(salesInvoiceDetail.DeliveryOrderDetailId); if (salesInvoiceDetail.Quantity > deliveryOrderDetail.PendingInvoicedQuantity) { salesInvoiceDetail.Errors.Add("Generic", "Quantity harus kurang dari atau sama dengan pending invoice quantity"); } return(salesInvoiceDetail); }
public SalesInvoiceDetail SoftDeleteObject(SalesInvoiceDetail salesInvoiceDetail, ISalesInvoiceService _salesInvoiceService) { if (_validator.ValidDeleteObject(salesInvoiceDetail)) { SalesInvoice salesInvoice = _salesInvoiceService.GetObjectById(salesInvoiceDetail.SalesInvoiceId); _repository.SoftDeleteObject(salesInvoiceDetail); _salesInvoiceService.CalculateAmountReceivable(salesInvoice, this); } return(salesInvoiceDetail); }
public SalesInvoiceDetail VHasSalesInvoice(SalesInvoiceDetail salesInvoiceDetail, ISalesInvoiceService _salesInvoiceService) { SalesInvoice salesInvoice = _salesInvoiceService.GetObjectById(salesInvoiceDetail.SalesInvoiceId); if (salesInvoice == null) { salesInvoiceDetail.Errors.Add("SalesInvoiceId", "Tidak terasosiasi dengan sales invoice"); } return(salesInvoiceDetail); }
protected void Save_prodcut_Click(object sender, EventArgs e) { mySalesInvoiceDetail = new SalesInvoiceDetail(); //add New item to virtual Details List var last_index = SalesInvoiceDetailList.Count(); if (last_index != 0) { last_index = SalesInvoiceDetailList[last_index - 1].ID; } mySalesInvoiceDetail = SalesInvoiceDetailModel(); // Check of The quntity in Is there or Not bool IsThereEnoughGoods = ThereEnoughGoods(Convert.ToDouble(mySalesInvoiceDetail.Qty), mySalesInvoiceDetail.ProductID); if (IsThereEnoughGoods) { if (mySalesInvoiceDetail.ID == 0) { mySalesInvoiceDetail.ID = last_index + 1; SalesInvoiceDetailList.Add(mySalesInvoiceDetail); } else { int removeditemindex = 0; for (int i = 0; i < SalesInvoiceDetailList.Count; i++) { if (mySalesInvoiceDetail.ID == SalesInvoiceDetailList[i].ID) { removeditemindex = i; break; } } SalesInvoiceDetailList[removeditemindex] = mySalesInvoiceDetail; } //Calculate new Total if (SalesInvoiceDetailList.Count > 0) { double totalPrice = 0; for (int i = 0; i < SalesInvoiceDetailList.Count; i++) { totalPrice = totalPrice + Convert.ToDouble(SalesInvoiceDetailList[i].ProductPrice * SalesInvoiceDetailList[i].Qty); } Total.Text = totalPrice.ToString(); } AddErrorTxt.Text = ""; BindGridList(); ClearPurchaseInvoiceDetailsModel(); } else { ShowMessage("No Enough Quntity Of this Product"); } }
public int Pay(PaymentDto payment) { //if salesInvoiceId > 0 then delete drs associated with the invoice and reapply var invoice = salesInvoiceRepository.Get(x => x.SalesInvoiceId == payment.SalesInvoiceId, includedProperties: "SalesInvoiceDetails").FirstOrDefault() ?? new SalesInvoice(); invoice.CustomerId = payment.CustomerId; invoice.InvoiceDate = payment.InvoiceDate; invoice.InvoiceNumber = payment.InvoiceNumber; invoice.Amount = payment.Amount; //let's delete anything on this invoice, before reapplying the amount invoice.SalesInvoiceDetails.ToList().ForEach(x => invoiceDetailsRepository.Delete(x)); unitOfWork.Commit(); var receivables = receivableRepository.Get(x => x.CustomerId == payment.CustomerId) .OrderBy(x => x.DeliveryReceiptId).ToList(); var paymentAmount = payment.Amount; for (int i = 0; i < receivables.Count; i++) { var salesInvoiceDetail = new SalesInvoiceDetail(); var receivable = receivables[i]; salesInvoiceDetail.DeliveryReceiptLedgerId = receivable.DeliveryReceiptLedgerId; if (receivable.ReceivableAmount <= paymentAmount) { salesInvoiceDetail.Amount = receivable.ReceivableAmount; paymentAmount = paymentAmount - receivable.ReceivableAmount; } else { salesInvoiceDetail.Amount = paymentAmount; paymentAmount = 0; } salesInvoiceDetail.SalesInvoice = invoice; invoice.SalesInvoiceDetails.Add(salesInvoiceDetail); if (paymentAmount <= 0) { break; } } if (invoice.IsNew) { salesInvoiceRepository.Insert(invoice); } else { salesInvoiceRepository.Update(invoice); } unitOfWork.Commit(); return(invoice.SalesInvoiceId); }
protected void edit_product_Command(object sender, CommandEventArgs e) { int index = Convert.ToInt32(e.CommandArgument); List <SalesInvoiceDetail> gvr = (List <SalesInvoiceDetail>)GridView1.DataSource; SalesInvoiceDetail SalesInvoDetEdit = gvr[index]; HidenIdpurchasInvDe.Value = SalesInvoDetEdit.ID.ToString(); ProductListtxt.SelectedValue = SalesInvoDetEdit.ProductID.ToString(); Qty.Text = SalesInvoDetEdit.Qty.ToString(); ProductPrice.Text = SalesInvoDetEdit.ProductPrice.ToString(); }
public SalesInvoiceDetail VUpdateObject(SalesInvoiceDetail salesInvoiceDetail, ISalesInvoiceService _salesInvoiceService, ISalesInvoiceDetailService _salesInvoiceDetailService, IDeliveryOrderDetailService _deliveryOrderDetailService) { VHasNotBeenConfirmed(salesInvoiceDetail); if (!isValid(salesInvoiceDetail)) { return(salesInvoiceDetail); } VCreateObject(salesInvoiceDetail, _salesInvoiceService, _salesInvoiceDetailService, _deliveryOrderDetailService); return(salesInvoiceDetail); }
public SalesInvoiceDetail UnconfirmObject(SalesInvoiceDetail salesInvoiceDetail, IDeliveryOrderService _deliveryOrderService, IDeliveryOrderDetailService _deliveryOrderDetailService) { if (_validator.ValidUnconfirmObject(salesInvoiceDetail)) { salesInvoiceDetail = _repository.UnconfirmObject(salesInvoiceDetail); // reverse sales receival detail PendingInvoiceQuantity DeliveryOrderDetail deliveryOrderDetail = _deliveryOrderDetailService.GetObjectById(salesInvoiceDetail.DeliveryOrderDetailId); _deliveryOrderDetailService.UndoInvoiceObject(deliveryOrderDetail, salesInvoiceDetail.Quantity, _deliveryOrderService); } return(salesInvoiceDetail); }
public SalesInvoiceDetail ConfirmObject(SalesInvoiceDetail salesInvoiceDetail, DateTime ConfirmationDate, IDeliveryOrderDetailService _deliveryOrderDetailService) { salesInvoiceDetail.ConfirmationDate = ConfirmationDate; if (_validator.ValidConfirmObject(salesInvoiceDetail, this, _deliveryOrderDetailService)) { salesInvoiceDetail = _repository.ConfirmObject(salesInvoiceDetail); // update sales receival detail PendingInvoiceQuantity DeliveryOrderDetail deliveryOrderDetail = _deliveryOrderDetailService.GetObjectById(salesInvoiceDetail.DeliveryOrderDetailId); _deliveryOrderDetailService.InvoiceObject(deliveryOrderDetail, salesInvoiceDetail.Quantity); } return(salesInvoiceDetail); }
public SalesInvoiceDetail CreateObject(int salesInvoiceId, int deliveryOrderDetailId, int quantity, decimal amount, ISalesInvoiceService _salesInvoiceService, ISalesOrderDetailService _salesOrderDetailService, IDeliveryOrderDetailService _deliveryOrderDetailService) { SalesInvoiceDetail salesInvoiceDetail = new SalesInvoiceDetail { SalesInvoiceId = salesInvoiceId, DeliveryOrderDetailId = deliveryOrderDetailId, Quantity = quantity }; return(this.CreateObject(salesInvoiceDetail, _salesInvoiceService, _salesOrderDetailService, _deliveryOrderDetailService)); }
public SalesInvoiceDetail VIsUniqueDeliveryOrderDetail(SalesInvoiceDetail salesInvoiceDetail, ISalesInvoiceDetailService _salesInvoiceDetail, IDeliveryOrderDetailService _deliveryOrderDetailService) { IList <SalesInvoiceDetail> details = _salesInvoiceDetail.GetObjectsBySalesInvoiceId(salesInvoiceDetail.SalesInvoiceId); foreach (var detail in details) { if (detail.DeliveryOrderDetailId == salesInvoiceDetail.DeliveryOrderDetailId && detail.Id != salesInvoiceDetail.Id) { salesInvoiceDetail.Errors.Add("Generic", "Tidak boleh memiliki lebih dari 2 Sales Receival Detail"); } } return(salesInvoiceDetail); }
public string PrintError(SalesInvoiceDetail obj) { string erroroutput = ""; KeyValuePair <string, string> first = obj.Errors.ElementAt(0); erroroutput += first.Key + "," + first.Value; foreach (KeyValuePair <string, string> pair in obj.Errors.Skip(1)) { erroroutput += Environment.NewLine; erroroutput += pair.Key + "," + pair.Value; } return(erroroutput); }
public SalesInvoiceDetail UpdateObject(SalesInvoiceDetail salesInvoiceDetail, ISalesInvoiceService _salesInvoiceService, ISalesOrderDetailService _salesOrderDetailService, IDeliveryOrderDetailService _deliveryOrderDetailService) { if (_validator.ValidUpdateObject(salesInvoiceDetail, _salesInvoiceService, this, _deliveryOrderDetailService)) { DeliveryOrderDetail deliveryOrderDetail = _deliveryOrderDetailService.GetObjectById(salesInvoiceDetail.DeliveryOrderDetailId); SalesOrderDetail salesOrderDetail = _salesOrderDetailService.GetObjectById(deliveryOrderDetail.SalesOrderDetailId); salesInvoiceDetail.Amount = salesInvoiceDetail.Quantity * salesOrderDetail.Price; _repository.UpdateObject(salesInvoiceDetail); SalesInvoice salesInvoice = _salesInvoiceService.GetObjectById(salesInvoiceDetail.SalesInvoiceId); _salesInvoiceService.CalculateAmountReceivable(salesInvoice, this); } return(salesInvoiceDetail); }
private List <SalesInvoiceDetail> GetChildOnCreate(SalesInvoice master, SalesInvoiceComplex source) { List <SalesInvoiceDetail> infos = new List <SalesInvoiceDetail>(); var wanted = source.ChildList.Where(x => x.IsDirty == true); foreach (var item in wanted) { SalesInvoiceDetail temp = Mapper.Map <SalesInvoiceDetail>(item); temp.InvoiceID = master.InvoiceID; temp.LastPerson = IdentityService.GetUserData().UserID; temp.LastUpdate = DateTime.Now; infos.Add(temp); } return(infos); }
public SalesInvoiceDetail CreateObject(SalesInvoiceDetail salesInvoiceDetail, ISalesInvoiceService _salesInvoiceService, ISalesOrderDetailService _salesOrderDetailService, IDeliveryOrderDetailService _deliveryOrderDetailService) { salesInvoiceDetail.Errors = new Dictionary <String, String>(); if (_validator.ValidCreateObject(salesInvoiceDetail, _salesInvoiceService, this, _deliveryOrderDetailService)) { DeliveryOrderDetail deliveryOrderDetail = _deliveryOrderDetailService.GetObjectById(salesInvoiceDetail.DeliveryOrderDetailId); SalesOrderDetail salesOrderDetail = _salesOrderDetailService.GetObjectById(deliveryOrderDetail.SalesOrderDetailId); salesInvoiceDetail.Amount = salesInvoiceDetail.Quantity * salesOrderDetail.Price; salesInvoiceDetail = _repository.CreateObject(salesInvoiceDetail); SalesInvoice salesInvoice = _salesInvoiceService.GetObjectById(salesInvoiceDetail.SalesInvoiceId); _salesInvoiceService.CalculateAmountReceivable(salesInvoice, this); } return(salesInvoiceDetail); }
public SalesInvoiceDetail VConfirmObject(SalesInvoiceDetail salesInvoiceDetail, ISalesInvoiceDetailService _salesInvoiceDetailService, IDeliveryOrderDetailService _deliveryOrderDetailService) { VHasConfirmationDate(salesInvoiceDetail); if (!isValid(salesInvoiceDetail)) { return(salesInvoiceDetail); } VHasNotBeenConfirmed(salesInvoiceDetail); if (!isValid(salesInvoiceDetail)) { return(salesInvoiceDetail); } VQuantityIsLessThanOrEqualPendingInvoiceQuantity(salesInvoiceDetail, _deliveryOrderDetailService); return(salesInvoiceDetail); }
public dynamic UpdateDetail(SalesInvoiceDetail model) { decimal amount = 0; try { if (!AuthenticationModel.IsAllowed("Edit", Core.Constants.Constant.MenuName.SalesInvoice, Core.Constants.Constant.MenuGroupName.Transaction)) { Dictionary <string, string> Errors = new Dictionary <string, string>(); Errors.Add("Generic", "You are Not Allowed to Edit record"); return(Json(new { Errors }, JsonRequestBehavior.AllowGet)); } var data = _salesInvoiceDetailService.GetObjectById(model.Id); data.Quantity = model.Quantity; data.DeliveryOrderDetailId = model.DeliveryOrderDetailId; model = _salesInvoiceDetailService.UpdateObject(data, _salesInvoiceService, _salesOrderDetailService, _deliveryOrderDetailService); amount = _salesInvoiceService.GetObjectById(model.SalesInvoiceId).AmountReceivable; } catch (Exception ex) { LOG.Error("Update 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, AmountPayable = amount })); }