public dynamic GetInfo(int Id) { DeliveryOrder model = new DeliveryOrder(); try { model = _deliveryOrderService.GetObjectById(Id); } catch (Exception ex) { LOG.Error("GetInfo", ex); model.Errors.Add("Generic", "Error : " + ex); } return(Json(new { model.Id, model.Code, model.SalesOrderId, SalesOrder = _salesOrderService.GetObjectById(model.SalesOrderId).Code, model.DeliveryDate, model.WarehouseId, Warehouse = _warehouseService.GetObjectById(model.WarehouseId).Name, model.Errors }, JsonRequestBehavior.AllowGet)); }
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 GetInfo(int Id) { SalesInvoice model = new SalesInvoice(); try { model = _salesInvoiceService.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.DeliveryOrderId, DeliveryOrder = _deliveryOrderService.GetObjectById(model.DeliveryOrderId).Code, model.AmountReceivable, model.Discount, model.Description, model.IsTaxable, model.InvoiceDate, model.DueDate, model.Errors }, JsonRequestBehavior.AllowGet)); }
public SalesInvoice ConfirmObject(SalesInvoice salesInvoice, DateTime ConfirmationDate, ISalesInvoiceDetailService _salesInvoiceDetailService, ISalesOrderService _salesOrderService, IDeliveryOrderService _deliveryOrderService, IDeliveryOrderDetailService _deliveryOrderDetailService, IReceivableService _receivableService) { salesInvoice.ConfirmationDate = ConfirmationDate; if (_validator.ValidConfirmObject(salesInvoice, _salesInvoiceDetailService, _deliveryOrderService, _deliveryOrderDetailService)) { // confirm details // add all amount into amountreceivable IList <SalesInvoiceDetail> details = _salesInvoiceDetailService.GetObjectsBySalesInvoiceId(salesInvoice.Id); foreach (var detail in details) { detail.Errors = new Dictionary <string, string>(); _salesInvoiceDetailService.ConfirmObject(detail, ConfirmationDate, _deliveryOrderDetailService); } salesInvoice = CalculateAmountReceivable(salesInvoice, _salesInvoiceDetailService); // confirm object // create receivable salesInvoice = _repository.ConfirmObject(salesInvoice); DeliveryOrder deliveryOrder = _deliveryOrderService.GetObjectById(salesInvoice.DeliveryOrderId); _deliveryOrderService.CheckAndSetInvoiceComplete(deliveryOrder, _deliveryOrderDetailService); SalesOrder salesOrder = _salesOrderService.GetObjectById(deliveryOrder.SalesOrderId); Receivable receivable = _receivableService.CreateObject(salesOrder.ContactId, Constant.ReceivableSource.SalesInvoice, salesInvoice.Id, salesInvoice.AmountReceivable, salesInvoice.DueDate); } return(salesInvoice); }
public SalesInvoice VDeliveryOrderHasNotBeenInvoiceCompleted(SalesInvoice salesInvoice, IDeliveryOrderService _deliveryOrderService) { DeliveryOrder deliveryOrder = _deliveryOrderService.GetObjectById(salesInvoice.DeliveryOrderId); if (deliveryOrder.IsInvoiceCompleted) { salesInvoice.Errors.Add("Generic", "Tidak boleh memilih Sales Receival dengan invoice yang sudah terbayar"); } return(salesInvoice); }
public SalesInvoice VHasDeliveryOrder(SalesInvoice salesInvoice, IDeliveryOrderService _deliveryOrderService) { DeliveryOrder deliveryOrder = _deliveryOrderService.GetObjectById(salesInvoice.DeliveryOrderId); if (deliveryOrder == null) { salesInvoice.Errors.Add("Generic", "Tidak terasosiasi dengan Sales Receival"); } return(salesInvoice); }
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 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 VDeliveryOrderAndSalesOrderDetailHaveTheSameSalesOrder(DeliveryOrderDetail deliveryOrderDetail, IDeliveryOrderService _purchaseReceivalService, ISalesOrderDetailService _salesOrderDetailService) { DeliveryOrder deliveryOrder = _purchaseReceivalService.GetObjectById(deliveryOrderDetail.DeliveryOrderId); SalesOrderDetail salesOrderDetail = _salesOrderDetailService.GetObjectById(deliveryOrderDetail.SalesOrderDetailId); if (deliveryOrder.SalesOrderId != salesOrderDetail.SalesOrderId) { deliveryOrderDetail.Errors.Add("Generic", "Sales order dari sales order detail dan delivery order tidak sama"); return(deliveryOrderDetail); } return(deliveryOrderDetail); }
public DeliveryOrderDetail VHasItemQuantity(DeliveryOrderDetail deliveryOrderDetail, IDeliveryOrderService _deliveryOrderService, IItemService _itemService, IWarehouseItemService _warehouseItemService) { DeliveryOrder deliveryOrder = _deliveryOrderService.GetObjectById(deliveryOrderDetail.DeliveryOrderId); WarehouseItem warehouseItem = _warehouseItemService.FindOrCreateObject(deliveryOrder.WarehouseId, deliveryOrderDetail.ItemId); Item item = _itemService.GetObjectById(deliveryOrderDetail.ItemId); if (item.Quantity - deliveryOrderDetail.Quantity < 0) { deliveryOrderDetail.Errors.Add("Generic", "Item quantity kurang dari quantity untuk di kirim"); } else if (warehouseItem.Quantity - deliveryOrderDetail.Quantity < 0) { deliveryOrderDetail.Errors.Add("Generic", "WarehouseItem quantity kurang dari quantity untuk di kirim"); } return(deliveryOrderDetail); }
public SalesInvoice UnconfirmObject(SalesInvoice salesInvoice, ISalesInvoiceDetailService _salesInvoiceDetailService, IDeliveryOrderService _deliveryOrderService, IDeliveryOrderDetailService _deliveryOrderDetailService, IReceiptVoucherDetailService _receiptVoucherDetailService, IReceivableService _receivableService) { if (_validator.ValidUnconfirmObject(salesInvoice, _salesInvoiceDetailService, _receiptVoucherDetailService, _receivableService)) { IList <SalesInvoiceDetail> details = _salesInvoiceDetailService.GetObjectsBySalesInvoiceId(salesInvoice.Id); foreach (var detail in details) { detail.Errors = new Dictionary <string, string>(); _salesInvoiceDetailService.UnconfirmObject(detail, _deliveryOrderService, _deliveryOrderDetailService); } _repository.UnconfirmObject(salesInvoice); DeliveryOrder deliveryOrder = _deliveryOrderService.GetObjectById(salesInvoice.DeliveryOrderId); _deliveryOrderService.UnsetInvoiceComplete(deliveryOrder); Receivable receivable = _receivableService.GetObjectBySource(Constant.ReceivableSource.SalesInvoice, salesInvoice.Id); _receivableService.SoftDeleteObject(receivable); } return(salesInvoice); }
public DeliveryOrderDetail UnconfirmObject(DeliveryOrderDetail deliveryOrderDetail, IDeliveryOrderService _deliveryOrderService, ISalesOrderService _salesOrderService, ISalesOrderDetailService _salesOrderDetailService, ISalesInvoiceDetailService _salesInvoiceDetailService, IStockMutationService _stockMutationService, IItemService _itemService, IBarringService _barringService, IWarehouseItemService _warehouseItemService) { if (_validator.ValidUnconfirmObject(deliveryOrderDetail, _salesInvoiceDetailService)) { deliveryOrderDetail = _repository.UnconfirmObject(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.SoftDeleteStockMutationForDeliveryOrder(deliveryOrderDetail, warehouseItem); foreach (var stockMutation in stockMutations) { //item.PendingDelivery += deliveryOrderDetail.Quantity; //item.Quantity += deliveryOrderDetail.Quantity; _stockMutationService.ReverseStockMutateObject(stockMutation, _itemService, _barringService, _warehouseItemService); } SalesOrderDetail salesOrderDetail = _salesOrderDetailService.GetObjectById(deliveryOrderDetail.SalesOrderDetailId); _salesOrderDetailService.UnsetDeliveryComplete(salesOrderDetail, deliveryOrderDetail.Quantity, _salesOrderService); } return(deliveryOrderDetail); }