Esempio n. 1
0
        private Decimal GetDispatchAllocation(string reqNo, int fdpId)
        {
            var dispatches      = _dispatchService.Get(t => t.RequisitionNo == reqNo && t.FDPID == fdpId).ToList();
            var totaldispatched = dispatches.Sum(dispatch => dispatch.DispatchDetails.Sum(m => m.DispatchedQuantityInMT));

            return(totaldispatched);
        }
Esempio n. 2
0
        private Decimal GetDispatchAllocation(int transportOrderID)
        {
            var dispatches      = _dispatchService.Get(t => t.DispatchAllocation.TransportOrderID == transportOrderID).ToList();
            var totaldispatched = dispatches.Sum(dispatch => dispatch.DispatchDetails.Sum(m => m.DispatchedQuantityInMT));

            return(totaldispatched);
        }
        public ActionResult ReadDispatchesNotReconciled([DataSourceRequest] DataSourceRequest request, int FDPID)
        {
            var dispatch = _dispatchService.Get(t => t.FDPID == FDPID, null, "FDP,DispatchAllocation").OrderByDescending(t => t.DispatchDate);
            var dispatchViewModelForReconciles = BindDispatchViewModelForReconciles(dispatch);
            var dispatchViewModelForReconciled = dispatchViewModelForReconciles as List <DispatchViewModelForReconcile> ?? dispatchViewModelForReconciles.ToList();

            foreach (var dispatchViewModelForReconcile in dispatchViewModelForReconciled)
            {
                var dispatchId        = dispatchViewModelForReconcile.DispatchID;
                var deliveryReconcile = _deliveryReconcileService.Get(t => t.DispatchID == dispatchId).FirstOrDefault();
                dispatchViewModelForReconcile.GRNReconciled = deliveryReconcile != null;
                if (deliveryReconcile != null)
                {
                    dispatchViewModelForReconcile.DeliveryReconcileID = deliveryReconcile.DeliveryReconcileID;
                    dispatchViewModelForReconcile.GRN                = deliveryReconcile.GRN;
                    dispatchViewModelForReconcile.WayBillNo          = deliveryReconcile.WayBillNo;
                    dispatchViewModelForReconcile.ReceivedAmount     = deliveryReconcile.ReceivedAmount;
                    dispatchViewModelForReconcile.ReceivedDate       = deliveryReconcile.ReceivedDate;
                    dispatchViewModelForReconcile.LossAmount         = deliveryReconcile.LossAmount;
                    dispatchViewModelForReconcile.LossReason         = deliveryReconcile.LossReason;
                    dispatchViewModelForReconcile.TransactionGroupID = deliveryReconcile.TransactionGroupID;
                }
            }
            var dispatchView = SetDatePreference(dispatchViewModelForReconciled).ToList();

            return(Json(dispatchView.ToDataSourceResult(request), JsonRequestBehavior.AllowGet));
        }
Esempio n. 4
0
        public ActionResult ReadDeliveryNotes(int id)
        {
            var dispatchIds =
                _dispatchService.Get(t => t.DispatchAllocation.TransportOrderID == id).Select(t => t.DispatchID).ToList();

            var deliveries = _deliveryService.Get(t => dispatchIds.Contains(t.DispatchID.Value), null, "DeliveryDetails").ToList();

            var deliveryViewModels = deliveries.Select(EditGoodsReceivingNote);

            return(Json(deliveryViewModels, JsonRequestBehavior.AllowGet));
        }
Esempio n. 5
0
        public List <TransporterPaymentRequestViewModel> TransporterPaymentRequestViewModelBinder(List <TransporterPaymentRequest> transporterPaymentRequests)
        {
            var transporterPaymentRequestViewModels = new List <TransporterPaymentRequestViewModel>();

            foreach (var transporterPaymentRequest in transporterPaymentRequests)
            {
                var request        = transporterPaymentRequest;
                var dispatch       = _dispatchService.Get(t => t.DispatchID == request.Delivery.DispatchID, null, "Hub, FDP").FirstOrDefault();
                var firstOrDefault = _bidWinnerService.Get(t => t.SourceID == dispatch.HubID && t.DestinationID == dispatch.FDPID &&
                                                           t.TransporterID == request.TransportOrder.TransporterID && t.Bid.BidNumber == dispatch.BidNumber).FirstOrDefault();
                var tarrif = (decimal)0.00;
                if (firstOrDefault != null)
                {
                    tarrif = firstOrDefault.Tariff != null ? (decimal)firstOrDefault.Tariff : (decimal)0.00;
                }
                if (dispatch != null && request.Delivery.DeliveryDetails.FirstOrDefault() != null)
                {
                    var deliveryDetail  = request.Delivery.DeliveryDetails.FirstOrDefault();
                    var businessProcess = _businessProcessService.FindById(request.BusinessProcessID);
                    if (request.LabourCost == null)
                    {
                        request.LabourCost = (decimal)0.00;
                    }
                    if (request.RejectedAmount == null)
                    {
                        request.RejectedAmount = (decimal)0.00;
                    }
                    if (deliveryDetail != null)
                    {
                        var transporterPaymentRequestViewModel = new TransporterPaymentRequestViewModel()
                        {
                            RequisitionNo               = dispatch.RequisitionNo,
                            GIN                         = request.Delivery.InvoiceNo,
                            GRN                         = request.Delivery.ReceivingNumber,
                            Commodity                   = deliveryDetail.Commodity.Name,
                            Source                      = dispatch.Hub.Name,
                            Destination                 = dispatch.FDP.Name,
                            ReceivedQty                 = deliveryDetail.ReceivedQuantity,
                            Tarrif                      = tarrif,
                            ShortageQty                 = deliveryDetail.SentQuantity - deliveryDetail.ReceivedQuantity,
                            ShortageBirr                = request.ShortageBirr,
                            SentQty                     = deliveryDetail.SentQuantity,
                            BusinessProcessID           = request.BusinessProcessID,
                            DeliveryID                  = request.DeliveryID,
                            ReferenceNo                 = request.ReferenceNo,
                            TransportOrderID            = request.TransportOrderID,
                            TransporterPaymentRequestID = request.TransporterPaymentRequestID,
                            FreightCharge               = (decimal)(request.ShortageBirr != null ? (deliveryDetail.ReceivedQuantity * tarrif) - request.ShortageBirr + request.LabourCost - request.RejectedAmount : (deliveryDetail.ReceivedQuantity * tarrif) + request.LabourCost - request.RejectedAmount),
                            BusinessProcess             = businessProcess,
                            LabourCost                  = request.LabourCost,
                            LabourCostRate              = request.LabourCostRate,
                            RejectedAmount              = request.RejectedAmount,
                            RejectionReason             = request.RejectionReason,
                            RequestedDate               = request.RequestedDate
                        };
                        transporterPaymentRequestViewModels.Add(transporterPaymentRequestViewModel);
                    }
                }
            }
            return(transporterPaymentRequestViewModels);
        }
        public List <TransporterPaymentRequestViewModel> TransporterPaymentRequestViewModelBinder(
            List <TransporterPaymentRequest> transporterPaymentRequests)
        {
            var currentUser = _userAccountService.GetUserInfo(HttpContext.User.Identity.Name);

            var datePref = currentUser.DatePreference;

            var transporterPaymentRequestViewModels = new List <TransporterPaymentRequestViewModel>();

            foreach (var transporterPaymentRequest in transporterPaymentRequests)
            {
                var request = transporterPaymentRequest;

                var dispatch =
                    _dispatchService.Get(t => t.DispatchID == request.Delivery.DispatchID, null, "Hub, FDP").
                    FirstOrDefault();
                var transportOrderdetail =
                    _transportOrderDetailService.FindBy(
                        m =>
                        m.TransportOrderID == request.TransportOrderID && m.SourceWarehouseID == dispatch.HubID &&
                        m.FdpID == dispatch.FDPID).FirstOrDefault();
                //var firstOrDefault = _bidWinnerService.Get(t => t.SourceID == dispatch.HubID && t.DestinationID == dispatch.FDPID
                //    && t.TransporterID == request.TransportOrder.TransporterID && t.Bid.BidNumber == dispatch.BidNumber).FirstOrDefault();
                var tarrif   = (decimal)0.00;
                var bidDocNo = string.Empty;
                if (transportOrderdetail != null)
                {
                    tarrif   = (decimal)transportOrderdetail.TariffPerQtl;
                    bidDocNo = transportOrderdetail.TransportOrder.BidDocumentNo;
                }
                if (dispatch != null && request.Delivery.DeliveryDetails.FirstOrDefault() != null)
                {
                    {
                        var dispathedAmount = (decimal)0.0;
                        var childCommodity  = string.Empty;
                        var firstOrDefault  = dispatch.DispatchDetails.FirstOrDefault();
                        if (firstOrDefault != null)
                        {
                            dispathedAmount = firstOrDefault.DispatchedQuantityInMT.ToQuintal();
                        }

                        var dispatchedDate = dispatch.DispatchDate.Date;
                        var dispatchDetail = dispatch.DispatchDetails.FirstOrDefault();
                        if (dispatchDetail != null)
                        {
                            var childCommodityId = dispatchDetail.CommodityChildID;

                            var orDefault = _commodityService.GetCommodities(c => c.CommodityID == childCommodityId).FirstOrDefault();
                            if (orDefault != null)
                            {
                                childCommodity = orDefault.Name;
                            }
                        }
                        var deliveryDetail  = request.Delivery.DeliveryDetails.FirstOrDefault();
                        var businessProcess = _BusinessProcessService.FindById(request.BusinessProcessID);
                        if (request.LabourCost == null)
                        {
                            request.LabourCost = (decimal)0.00;
                        }
                        if (request.RejectedAmount == null)
                        {
                            request.RejectedAmount = (decimal)0.00;
                        }
                        if (deliveryDetail != null)
                        {
                            var transporterPaymentRequestViewModel = new TransporterPaymentRequestViewModel()
                            {
                                RequisitionNo = dispatch.RequisitionNo,
                                GIN           = request.Delivery.InvoiceNo,
                                GRN           = request.Delivery.ReceivingNumber,
                                Commodity     = deliveryDetail.Commodity.Name,
                                Source        = dispatch.Hub.Name,
                                Destination   = dispatch.FDP.Name,
                                Region        = dispatch.FDP.AdminUnit.AdminUnit2.AdminUnit2.Name,
                                ReceivedQty   =
                                    deliveryDetail.ReceivedQuantity.
                                    ToQuintal(),
                                Tarrif      = tarrif,
                                ShortageQty = request.ShortageQty != null ? (decimal)(request.ShortageQty) : (deliveryDetail.SentQuantity.ToQuintal()) -
                                              (deliveryDetail.ReceivedQuantity.
                                               ToQuintal()),
                                ShortageBirr      = request.ShortageBirr,
                                SentQty           = deliveryDetail.SentQuantity,
                                BusinessProcessID =
                                    request.BusinessProcessID,
                                DeliveryID                  = request.DeliveryID,
                                ReferenceNo                 = request.ReferenceNo,
                                TransportOrderID            = request.TransportOrderID,
                                TransporterPaymentRequestID =
                                    request.TransporterPaymentRequestID,
                                FreightCharge =
                                    (decimal)
                                    (request.ShortageBirr != null
                                                                                      ? (Math.Min(deliveryDetail.ReceivedQuantity
                                                                                                  .ToQuintal(), dispathedAmount) * tarrif) - (
                                         request.ShortageBirr +
                                         request.LabourCost -
                                         request.RejectedAmount)
                                                                                      : (deliveryDetail.ReceivedQuantity
                                                                                         .ToQuintal() * tarrif) +
                                     request.LabourCost -
                                     request.RejectedAmount),
                                BusinessProcess  = businessProcess,
                                LabourCost       = request.LabourCost,
                                LabourCostRate   = request.LabourCostRate,
                                RejectedAmount   = request.RejectedAmount,
                                RejectionReason  = request.RejectionReason,
                                RequestedDate    = request.RequestedDate,
                                Program          = dispatch.DispatchAllocation.Program,
                                Transporter      = dispatch.Transporter,
                                ChildCommodity   = childCommodity,
                                DispatchDate     = dispatchedDate.ToCTSPreferedDateFormat(datePref),
                                DispatchedAmount = dispathedAmount,
                                BidDocumentNo    = bidDocNo,
                                Checked          = false,
                                ContractNumber   = _TransportOrderService.FindBy(t => t.TransportOrderID == dispatch.DispatchAllocation.TransportOrderID).FirstOrDefault().ContractNumber
                            };
                            transporterPaymentRequestViewModels.Add(transporterPaymentRequestViewModel);
                        }
                    }
                }
            }
            return(transporterPaymentRequestViewModels);
        }