public dynamic GetInfoDetail(int Id) { DeliveryOrderDetail model = new DeliveryOrderDetail(); try { model = _deliveryOrderDetailService.GetObjectById(Id); } catch (Exception ex) { LOG.Error("GetInfo", ex); model.Errors.Add("Generic", "Error : " + ex); } return(Json(new { model.Id, model.Code, model.SalesOrderDetailId, SalesOrderDetail = _salesOrderDetailService.GetObjectById(model.SalesOrderDetailId).Code, model.ItemId, Item = _itemService.GetObjectById(model.ItemId).Name, model.Quantity, model.Errors }, JsonRequestBehavior.AllowGet)); }
public ActionResult SetItemProductName(int id, string value) { var entity = DeliveryOrderDetail.Find(id); string val = (value ?? string.Empty).Trim(); if (entity.DeliveryOrder.IsCompleted || entity.DeliveryOrder.IsCancelled) { Response.StatusCode = 400; return(Content(Resources.ItemAlreadyCompletedOrCancelled)); } if (val.Length == 0) { entity.ProductName = entity.Product.Name; } else { entity.ProductName = val; } using (var scope = new TransactionScope()) { entity.UpdateAndFlush(); } return(Json(new { id = entity.Id, value = entity.ProductName })); }
public dynamic DeleteDetail(DeliveryOrderDetail model) { try { if (!AuthenticationModel.IsAllowed("Edit", Core.Constants.Constant.MenuName.DeliveryOrder, 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 = _deliveryOrderDetailService.GetObjectById(model.Id); model = _deliveryOrderDetailService.SoftDeleteObject(data); } 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 ValidUpdateObject(DeliveryOrderDetail deliveryOrderDetail, IDeliveryOrderDetailService _deliveryOrderDetailService, IDeliveryOrderService _deliveryOrderService, ISalesOrderDetailService _salesOrderDetailService, IItemService _itemService) { deliveryOrderDetail.Errors.Clear(); VUpdateObject(deliveryOrderDetail, _deliveryOrderDetailService, _deliveryOrderService, _salesOrderDetailService, _itemService); return(isValid(deliveryOrderDetail)); }
public DeliveryOrderDetail ConfirmObject(DeliveryOrderDetail deliveryOrderDetail, DateTime ConfirmationDate, IDeliveryOrderService _deliveryOrderService, ISalesOrderDetailService _salesOrderDetailService, IStockMutationService _stockMutationService, IItemService _itemService, IBarringService _barringService, IWarehouseItemService _warehouseItemService) { deliveryOrderDetail.ConfirmationDate = ConfirmationDate; if (_validator.ValidConfirmObject(deliveryOrderDetail, _deliveryOrderService, this, _salesOrderDetailService, _itemService, _warehouseItemService)) { deliveryOrderDetail = _repository.ConfirmObject(deliveryOrderDetail); DeliveryOrder deliveryOrder = _deliveryOrderService.GetObjectById(deliveryOrderDetail.DeliveryOrderId); WarehouseItem warehouseItem = _warehouseItemService.FindOrCreateObject(deliveryOrder.WarehouseId, deliveryOrderDetail.ItemId); Item item = _itemService.GetObjectById(deliveryOrderDetail.ItemId); IList <StockMutation> stockMutations = _stockMutationService.CreateStockMutationForDeliveryOrder(deliveryOrderDetail, warehouseItem); foreach (var stockMutation in stockMutations) { //item.PendingDelivery -= deliveryOrderDetail.Quantity; //item.Quantity -= deliveryOrderDetail.Quantity; _stockMutationService.StockMutateObject(stockMutation, _itemService, _barringService, _warehouseItemService); } SalesOrderDetail salesOrderDetail = _salesOrderDetailService.GetObjectById(deliveryOrderDetail.SalesOrderDetailId); _salesOrderDetailService.SetDeliveryComplete(salesOrderDetail, deliveryOrderDetail.Quantity); } return(deliveryOrderDetail); ; }
public dynamic InsertDetail(DeliveryOrderDetail model) { try { if (!AuthenticationModel.IsAllowed("Edit", Core.Constants.Constant.MenuName.DeliveryOrder, 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)); } model = _deliveryOrderDetailService.CreateObject(model, _deliveryOrderService, _salesOrderDetailService, _salesOrderService, _itemService); } 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 ActionResult SetItemQuantity(int id, decimal value) { var entity = DeliveryOrderDetail.Find(id); var product = entity.Product; if (entity.DeliveryOrder.IsCompleted || entity.DeliveryOrder.IsCancelled) { Response.StatusCode = 400; return(Content(Resources.ItemAlreadyCompletedOrCancelled)); } if (value >= 0 && value <= GetRemainQuantityBySalesOrderDetail(entity.OrderDetail)) { entity.Quantity = value; } else { entity.Quantity = GetRemainQuantityBySalesOrderDetail(entity.OrderDetail); } using (var scope = new TransactionScope()) { entity.UpdateAndFlush(); } return(Json(new { id = entity.Id, value = entity.FormattedValueFor(x => x.Quantity) })); }
public DeliveryOrderDetail VHasConfirmationDate(DeliveryOrderDetail obj) { if (obj.ConfirmationDate == null) { obj.Errors.Add("ConfirmationDate", "Tidak boleh kosong"); } return(obj); }
public DeliveryOrderDetail VHasNotBeenConfirmed(DeliveryOrderDetail deliveryOrderDetail) { if (deliveryOrderDetail.IsConfirmed) { deliveryOrderDetail.Errors.Add("Generic", "Tidak boleh sudah dikonfirmasi."); } return(deliveryOrderDetail); }
public DeliveryOrderDetail VNonNegativeQuantity(DeliveryOrderDetail deliveryOrderDetail) { if (deliveryOrderDetail.Quantity <= 0) { deliveryOrderDetail.Errors.Add("Quantity", "Tidak boleh negatif"); } return(deliveryOrderDetail); }
public bool ValidConfirmObject(DeliveryOrderDetail deliveryOrderDetail, IDeliveryOrderService _deliveryOrderService, IDeliveryOrderDetailService _deliveryOrderDetailService, ISalesOrderDetailService _salesOrderDetailService, IItemService _itemService, IWarehouseItemService _warehouseItemService) { deliveryOrderDetail.Errors.Clear(); VConfirmObject(deliveryOrderDetail, _deliveryOrderService, _deliveryOrderDetailService, _salesOrderDetailService, _itemService, _warehouseItemService); return(isValid(deliveryOrderDetail)); }
public DeliveryOrderDetail VHasItem(DeliveryOrderDetail deliveryOrderDetail, IItemService _itemService) { Item item = _itemService.GetObjectById(deliveryOrderDetail.ItemId); if (item == null) { deliveryOrderDetail.Errors.Add("Item", "Tidak boleh tidak ada"); } return(deliveryOrderDetail); }
public DeliveryOrderDetail VHasNoSalesInvoiceDetail(DeliveryOrderDetail deliveryOrderDetail, ISalesInvoiceDetailService _salesInvoiceDetailService) { IList <SalesInvoiceDetail> salesInvoiceDetails = _salesInvoiceDetailService.GetObjectsByDeliveryOrderDetailId(deliveryOrderDetail.Id); if (salesInvoiceDetails.Any()) { deliveryOrderDetail.Errors.Add("Generic", "Sudah memiliki sales invoice detail"); } return(deliveryOrderDetail); }
public DeliveryOrderDetail VHasDeliveryOrder(DeliveryOrderDetail deliveryOrderDetail, IDeliveryOrderService _purchaseReceivalService) { DeliveryOrder deliveryOrder = _purchaseReceivalService.GetObjectById(deliveryOrderDetail.DeliveryOrderId); if (deliveryOrder == null) { deliveryOrderDetail.Errors.Add("DeliveryOrder", "Tidak boleh tidak ada"); } return(deliveryOrderDetail); }
public IList <StockMutation> SoftDeleteStockMutationForDeliveryOrder(DeliveryOrderDetail deliveryOrderDetail, WarehouseItem warehouseItem) { IList <StockMutation> stockMutations = _repository.GetObjectsBySourceDocumentDetailForWarehouseItem(warehouseItem.Id, Constant.SourceDocumentDetailType.DeliveryOrderDetail, deliveryOrderDetail.Id); foreach (var stockMutation in stockMutations) { _repository.Delete(stockMutation); } return(stockMutations); }
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 DeliveryOrderDetail VHasSalesOrderDetail(DeliveryOrderDetail deliveryOrderDetail, ISalesOrderDetailService _salesOrderDetailService) { SalesOrderDetail salesOrderDetail = _salesOrderDetailService.GetObjectById(deliveryOrderDetail.SalesOrderDetailId); if (salesOrderDetail == null) { deliveryOrderDetail.Errors.Add("SalesOrderDetail", "Tidak boleh tidak ada"); } return(deliveryOrderDetail); }
public DeliveryOrderDetail VSalesOrderDetailHasBeenConfirmed(DeliveryOrderDetail deliveryOrderDetail, ISalesOrderDetailService _salesOrderDetailService) { SalesOrderDetail salesOrderDetail = _salesOrderDetailService.GetObjectById(deliveryOrderDetail.SalesOrderDetailId); if (!salesOrderDetail.IsConfirmed) { deliveryOrderDetail.Errors.Add("Generic", "Sales Order Detail belum dikonfirmasi"); } return(deliveryOrderDetail); }
public DeliveryOrderDetail CreateObject(DeliveryOrderDetail deliveryOrderDetail, IDeliveryOrderService _deliveryOrderService, ISalesOrderDetailService _salesOrderDetailService, ISalesOrderService _salesOrderService, IItemService _itemService) { deliveryOrderDetail.Errors = new Dictionary <String, String>(); if (_validator.ValidCreateObject(deliveryOrderDetail, this, _deliveryOrderService, _salesOrderDetailService, _itemService)) { _repository.CreateObject(deliveryOrderDetail); } return(deliveryOrderDetail); }
public DeliveryOrderDetail InvoiceObject(DeliveryOrderDetail deliveryOrderDetail, int Quantity) { deliveryOrderDetail.PendingInvoicedQuantity -= Quantity; if (deliveryOrderDetail.PendingInvoicedQuantity == 0) { deliveryOrderDetail.IsAllInvoiced = true; } _repository.UpdateObject(deliveryOrderDetail); return(deliveryOrderDetail); }
public DeliveryOrderDetail UndoInvoiceObject(DeliveryOrderDetail deliveryOrderDetail, int Quantity, IDeliveryOrderService _deliveryOrderService) { DeliveryOrder deliveryOrder = _deliveryOrderService.GetObjectById(deliveryOrderDetail.DeliveryOrderId); _deliveryOrderService.UnsetInvoiceComplete(deliveryOrder); deliveryOrderDetail.IsAllInvoiced = false; deliveryOrderDetail.PendingInvoicedQuantity += Quantity; _repository.UpdateObject(deliveryOrderDetail); return(deliveryOrderDetail); }
public DeliveryOrderDetail VUpdateObject(DeliveryOrderDetail deliveryOrderDetail, IDeliveryOrderDetailService _deliveryOrderDetailService, IDeliveryOrderService _deliveryOrderService, ISalesOrderDetailService _salesOrderDetailService, IItemService _itemService) { VHasNotBeenConfirmed(deliveryOrderDetail); if (!isValid(deliveryOrderDetail)) { return(deliveryOrderDetail); } VCreateObject(deliveryOrderDetail, _deliveryOrderDetailService, _deliveryOrderService, _salesOrderDetailService, _itemService); return(deliveryOrderDetail); }
public SalesInvoiceDetail VDeliveryOrderDetailAndSalesInvoiceMustHaveTheSameDeliveryOrder(SalesInvoiceDetail salesInvoiceDetail, IDeliveryOrderDetailService _deliveryOrderDetailService, ISalesInvoiceService _salesInvoiceService) { DeliveryOrderDetail deliveryOrderDetail = _deliveryOrderDetailService.GetObjectById(salesInvoiceDetail.DeliveryOrderDetailId); SalesInvoice salesInvoice = _salesInvoiceService.GetObjectById(salesInvoiceDetail.SalesInvoiceId); if (deliveryOrderDetail.DeliveryOrderId != salesInvoice.DeliveryOrderId) { deliveryOrderDetail.Errors.Add("Generic", "Delivery order detail dan sales invoice memiliki delivery order berbeda"); } 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 string PrintError(DeliveryOrderDetail 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 static SellingResult Save(DeliveryOrderHeaderViewModel models) { SellingResult result = new SellingResult(); try { using (var db = new BuahSayurContext()) { string newRef = GetNewReference(); result.Reference = newRef; DeliveryOrder deliveryOrder = new DeliveryOrder { Id = 1, Customer_Username = models.Customer_Username, Reference = newRef, SellingDate = models.SellingDate, IsSent = false, IsReturned = false }; db.DeliveryOrders.Add(deliveryOrder); foreach (var item in models.DeliveryDetails) { DeliveryOrderDetail deliveryDetail = new DeliveryOrderDetail { DeliveryOrder_Id = deliveryOrder.Id, Item_Code = item.Item_Code, Quantity = item.Quantity, Price = item.Price, Total = item.Quantity * item.Price }; result.Total += (item.Quantity * item.Price); db.DeliveryOrderDetails.Add(deliveryDetail); // Update Stock Item Stock = db.Items.Where(x => x.Code == item.Item_Code).FirstOrDefault(); if (Stock != null) { Stock.Stock = Stock.Stock - item.Quantity; } } db.SaveChanges(); } } catch (Exception ex) { result.Success = false; Message = ex.Message; } return result; }
public StockMovement SaveStockMovement(DeliveryOrderDetail deliveryOrderDetail) { StockMovement sm = new StockMovement(); sm.DeliveryOrderDetail = deliveryOrderDetail; sm.DeliveryOrderNo = deliveryOrderDetail.DeliveryOrderNo; sm.DeliveryOrderDetailItemCode = deliveryOrderDetail.ItemCode; sm.Item = deliveryOrderDetail.Item; sm.OriginalQuantity = inventoryRepository.FindById(deliveryOrderDetail.ItemCode).Quantity; sm.AfterQuantity = sm.OriginalQuantity + deliveryOrderDetail.ActualQuantity; sm.CreatedDateTime = DateTime.Now; sm.StockMovementId = IdService.GetNewStockMovementId(context); return(stockMovementRepository.Save(sm)); }
public DeliveryOrderDetail CreateObject(int deliveryOrderId, int itemId, int quantity, int salesOrderDetailId, IDeliveryOrderService _deliveryOrderService, ISalesOrderDetailService _salesOrderDetailService, ISalesOrderService _salesOrderService, IItemService _itemService) { DeliveryOrderDetail deliveryOrderDetail = new DeliveryOrderDetail { DeliveryOrderId = deliveryOrderId, ItemId = itemId, Quantity = quantity, SalesOrderDetailId = salesOrderDetailId }; return(this.CreateObject(deliveryOrderDetail, _deliveryOrderService, _salesOrderDetailService, _salesOrderService, _itemService)); }
public ActionResult AddItem(int id, int product) { var p = Product.Find (product); var entity = DeliveryOrder.Find (id); if (entity.IsCompleted || entity.IsCancelled) { Response.StatusCode = 400; return Content (Resources.ItemAlreadyCompletedOrCancelled); } var item = new DeliveryOrderDetail { DeliveryOrder = DeliveryOrder.Find (id), Product = p, ProductCode = p.Code, ProductName = p.Name, Quantity = 1, }; using (var scope = new TransactionScope ()) { item.CreateAndFlush (); } return Json (new { id = item.Id }); }
public ActionResult AddItems(int id, string value) { var entity = DeliveryOrder.Find (id); SalesOrder sales_order = null; int sales_order_id = 0; int count = 0; if (entity.IsCompleted || entity.IsCancelled) { Response.StatusCode = 400; return Content (Resources.ItemAlreadyCompletedOrCancelled); } if (int.TryParse (value, out sales_order_id)) { sales_order = SalesOrder.TryFind (sales_order_id); } if (sales_order == null) { Response.StatusCode = 400; return Content (Resources.SalesOrderNotFound); } using (var scope = new TransactionScope ()) { foreach (var x in sales_order.Details) { var item = new DeliveryOrderDetail { DeliveryOrder = entity, Product = x.Product, OrderDetail = x, ProductCode = x.ProductCode, ProductName = x.ProductName, Quantity = x.Quantity }; item.Create (); count++; } } if (count == 0) { Response.StatusCode = 400; return Content (Resources.InvoiceableItemsNotFound); } return Json (new { id = id, value = string.Empty, itemsChanged = count }); }