Ejemplo n.º 1
0
 public List <DispatchDetails> GetOrderDispatches(int orderId)
 {
     if (UserHelper.IsAuthorize(new List <int> {
         (int)UserType.SuperAdmin, (int)UserType.Admin, (int)UserType.Client
     }))
     {
         try
         {
             List <DispatchDetails>  result = new List <DispatchDetails>();
             List <Orders_Positions> listOfOrdersPositions = _context.Orders_Positions.Where(o => o.Order_id == orderId && o.Deleted_At == null).ToList();
             Delivery delivery = _context.Deliveries.FirstOrDefault(d => d.Order_Id == orderId && d.Deleted_At == null);
             List <Deliveries_Dispatches> listOfDeliveryDispatches = _context.Deliveries_Dispatches.Where(d => d.Delivery_Id == delivery.Id && d.Deleted_At == null).ToList();
             foreach (var deliveryDispatch in listOfDeliveryDispatches)
             {
                 Dispatch         dispatch         = _context.Dispatches.FirstOrDefault(d => d.Id == deliveryDispatch.Dispatch_Id && d.Deleted_At == null);
                 DispatchDetails  dispatchDetails  = new DispatchDetails();
                 CarrierDispatch  carrierDispatch  = new CarrierDispatch();
                 ReceiverDispatch receiverDispatch = new ReceiverDispatch();
                 List <OrderPositionsDispatchInfo> listOfOrderPositionsDispatchInfo = new List <OrderPositionsDispatchInfo>();
                 List <Dispatches_Positions>       listOfDispatchPositions          = new List <Dispatches_Positions>();
                 foreach (var item in listOfOrdersPositions)
                 {
                     var dispatchPosition = _context.Dispatches_Positions.FirstOrDefault(d => d.Order_Position_Id == item.Id && d.Dispatch_Id == dispatch.Id && d.Deleted_At == null);
                     if (dispatchPosition != null)
                     {
                         var     dispatchesPositionsForOrderPosition = _context.Dispatches_Positions.Where(d => d.Order_Position_Id == item.Id && EntityFunctions.DiffSeconds(d.Created_At, dispatchPosition.Created_At) < 0 && d.Deleted_At == null).OrderBy(d => d.Created_At).ToList();
                         int?    dispatchedAmount = dispatchesPositionsForOrderPosition.Sum(d => d.Amount);
                         decimal?dispatchedWeight = dispatchesPositionsForOrderPosition.Sum(d => d.Weight_Gross);
                         OrderPositionsDispatchInfo orderPositionsDispatchInfo = new OrderPositionsDispatchInfo();
                         orderPositionsDispatchInfo.Id                     = item.Id;
                         orderPositionsDispatchInfo.Name                   = item.Name;
                         orderPositionsDispatchInfo.Amount                 = item.Amount;
                         orderPositionsDispatchInfo.Amount_Received        = item.Amount_Received;
                         orderPositionsDispatchInfo.Amount_Before_Dispatch = item.Amount_Received - dispatchedAmount;
                         orderPositionsDispatchInfo.Amount_Dispatch        = dispatchPosition.Amount;
                         orderPositionsDispatchInfo.Amount_After_Dispatch  = orderPositionsDispatchInfo.Amount_Before_Dispatch - orderPositionsDispatchInfo.Amount_Dispatch;
                         orderPositionsDispatchInfo.Weight_Gross           = item.Weight_Gross;
                         orderPositionsDispatchInfo.Weight_Gross_Received  = item.Weight_Gross_Received;
                         orderPositionsDispatchInfo.Weight_Before_Dispatch = item.Weight_Gross_Received - dispatchedWeight;
                         orderPositionsDispatchInfo.Weight_Dispatch        = dispatchPosition.Weight_Gross;
                         orderPositionsDispatchInfo.Weight_After_Dispatch  = orderPositionsDispatchInfo.Weight_Before_Dispatch - orderPositionsDispatchInfo.Weight_Dispatch;
                         listOfOrderPositionsDispatchInfo.Add(orderPositionsDispatchInfo);
                     }
                 }
                 carrierDispatch.Carrier_Name           = dispatch.Carrier_Name;
                 carrierDispatch.Carrier_Email          = dispatch.Carrier_Email;
                 carrierDispatch.Carrier_Address        = dispatch.Carrier_Address;
                 carrierDispatch.Carrier_PrefixVat_Id   = dispatch.Carrier_PrefixVat_Id;
                 carrierDispatch.Carrier_VAT_Id         = dispatch.Carrier_VAT_Id;
                 carrierDispatch.Carrier_PhoneNumber    = dispatch.Carrier_PhoneNumber;
                 receiverDispatch.Receiver_Name         = dispatch.Receiver_Name;
                 receiverDispatch.Receiver_Email        = dispatch.Receiver_Email;
                 receiverDispatch.Receiver_Address      = dispatch.Receiver_Address;
                 receiverDispatch.Receiver_PrefixVat_Id = dispatch.Receiver_PrefixVat_Id;
                 receiverDispatch.Receiver_VAT_Id       = dispatch.Receiver_VAT_Id;
                 receiverDispatch.Receiver_PhoneNumber  = dispatch.Receiver_PhoneNumber;
                 dispatchDetails.Id = dispatch.Id;
                 dispatchDetails.Dispatch_Number      = dispatch.Dispatch_Number;
                 dispatchDetails.Creation_Date        = dispatch.Creation_Date == null ? string.Empty : ((DateTime)(dispatch.Creation_Date)).ToString("dd-MM-yyyy");
                 dispatchDetails.Car_Id               = dispatch.Car_Id;
                 dispatchDetails.Carrier              = carrierDispatch;
                 dispatchDetails.Receiver             = receiverDispatch;
                 dispatchDetails.ListOfOrderPositions = listOfOrderPositionsDispatchInfo;
                 result.Add(dispatchDetails);
             }
             return(result);
         }
         catch (Exception ex)
         {
             throw new HttpResponseException(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, ex.Message));
         }
     }
     else
     {
         throw new HttpResponseException(Request.CreateErrorResponse(HttpStatusCode.Unauthorized, "User don't have acces to this method"));
     }
 }
Ejemplo n.º 2
0
        public DispatchDetailsDispatchInfo GetDispatchDetails(int dispatchId)
        {
            if (UserHelper.IsAuthorize(new List <int> {
                (int)UserType.SuperAdmin, (int)UserType.Admin, (int)UserType.Client
            }))
            {
                DispatchDetailsDispatchInfo result = new DispatchDetailsDispatchInfo();
                List <DispatchOrderList>    listOfDispatchOrders = new List <DispatchOrderList>();

                CarrierDispatch  carrier     = new CarrierDispatch();
                ReceiverDispatch receiver    = new ReceiverDispatch();
                CMRDispatch      cmrToResult = new CMRDispatch();

                try
                {
                    Dispatch dispatchFromDB = _context.Dispatches.FirstOrDefault(d => d.Id == dispatchId && d.Deleted_At == null);
                    if (dispatchFromDB != null)
                    {
                        List <int> listOfDeliveryIdsForDispatch = _dispatchManager.GetListOfDeliveriesIdsForDispatch(dispatchFromDB);
                        foreach (var deliveryId in listOfDeliveryIdsForDispatch)
                        {
                            DispatchOrderList dispatchOrderList = new DispatchOrderList();
                            Delivery          delivery          = _context.Deliveries.FirstOrDefault(d => d.Id == deliveryId && d.Deleted_At == null);
                            //if (delivery != null)
                            //{
                            Order order = _context.Orders.FirstOrDefault(o => o.Id == delivery.Order_Id && o.Deleted_At == null);
                            //}

                            Dispatch dispatch = _context.Dispatches.FirstOrDefault(d => d.Id == dispatchId && d.Deleted_At == null);
                            if (dispatch.CMR_Id != null)
                            {
                                int            cmrId       = Convert.ToInt32(dispatch.CMR_Id);
                                CMR_Dispatches cmrDispatch = _context.CMR_Dispatches.FirstOrDefault(c => c.Id == cmrId && c.Deleted_At == null);
                                cmrToResult.Commodity_Type      = cmrDispatch.Commodity_Type;
                                cmrToResult.Destination         = cmrDispatch.Destination;
                                cmrToResult.Sender_Address      = cmrDispatch.Sender_Address;
                                cmrToResult.Sender_Email        = cmrDispatch.Sender_Email;
                                cmrToResult.Sender_Name         = cmrDispatch.Sender_Name;
                                cmrToResult.Sender_PrefixVat_Id = cmrDispatch.Sender_PrefixVat_Id;
                                cmrToResult.Sender_VAT_Id       = cmrDispatch.Sender_VAT_Id;
                            }

                            List <DispatchPositionsDispatchInfo> listOfDispatchPositions = new List <DispatchPositionsDispatchInfo>();

                            List <Orders_Positions> listOfOrdersPositions = _context.Orders_Positions.Where(o => o.Order_id == order.Id && o.Deleted_At == null).ToList();
                            foreach (var orderPosition in listOfOrdersPositions)
                            {
                                List <Dispatches_Positions> dispatchPositionsFromDB = _context.Dispatches_Positions.Where(d => d.Dispatch_Id == dispatchId && d.Order_Position_Id == orderPosition.Id && d.Deleted_At == null).ToList();
                                foreach (var dispatchPositionFromDB in dispatchPositionsFromDB)
                                {
                                    DispatchPositionsDispatchInfo dispatchPosition = new DispatchPositionsDispatchInfo();
                                    dispatchPosition.Id           = (int)dispatchPositionFromDB.Order_Position_Id;
                                    dispatchPosition.Amount       = dispatchPositionFromDB.Amount;
                                    dispatchPosition.Weight_Gross = dispatchPositionFromDB.Weight_Gross;
                                    dispatchPosition.Name         = _context.Orders_Positions.FirstOrDefault(o => o.Id == dispatchPositionFromDB.Order_Position_Id && o.Deleted_At == null).Name;
                                    listOfDispatchPositions.Add(dispatchPosition);
                                }
                            }
                            dispatchOrderList.Delivery_Id             = delivery.Id;
                            dispatchOrderList.Delivery_Number         = delivery.Delivery_Number;
                            dispatchOrderList.Order_Number            = order.Order_Number;
                            dispatchOrderList.ContainerId             = order.Container_Id;
                            dispatchOrderList.ListOfDispatchPositions = listOfDispatchPositions;
                            listOfDispatchOrders.Add(dispatchOrderList);
                        }

                        carrier.Carrier_Address        = dispatchFromDB.Carrier_Address;
                        carrier.Carrier_Email          = dispatchFromDB.Carrier_Email;
                        carrier.Carrier_PrefixVat_Id   = dispatchFromDB.Carrier_PrefixVat_Id;
                        carrier.Carrier_VAT_Id         = dispatchFromDB.Carrier_VAT_Id;
                        carrier.Carrier_Name           = dispatchFromDB.Carrier_Name;
                        carrier.Carrier_PhoneNumber    = dispatchFromDB.Carrier_PhoneNumber;
                        receiver.Receiver_Address      = dispatchFromDB.Receiver_Address;
                        receiver.Receiver_Email        = dispatchFromDB.Receiver_Email;
                        receiver.Receiver_Name         = dispatchFromDB.Receiver_Name;
                        receiver.Receiver_PrefixVat_Id = dispatchFromDB.Receiver_PrefixVat_Id;
                        receiver.Receiver_VAT_Id       = dispatchFromDB.Receiver_VAT_Id;
                        receiver.Receiver_PhoneNumber  = dispatchFromDB.Receiver_PhoneNumber;
                        result.Dispatch_Number         = dispatchFromDB.Dispatch_Number;
                        result.Carrier = carrier;
                        result.Id      = dispatchFromDB.Id;
                        result.ListOfDispatchOrders = listOfDispatchOrders;
                        result.Receiver             = receiver;
                        result.isCMR         = dispatchFromDB.If_CMR;
                        result.CmrDispatch   = cmrToResult;
                        result.Duty_Doc_Id   = dispatchFromDB.Duty_Doc_Id;
                        result.Car_Id        = dispatchFromDB.Car_Id;
                        result.Creation_Date = dispatchFromDB.Creation_Date == null ? string.Empty : dispatchFromDB.Creation_Date.Value.ToString("dd-MM-yyyy");
                    }
                    return(result);
                }
                catch (Exception ex)
                {
                    throw new HttpResponseException(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, ex.Message));
                }
            }
            else
            {
                throw new HttpResponseException(Request.CreateErrorResponse(HttpStatusCode.Unauthorized, "User don't have acces to this method"));
            }
        }
Ejemplo n.º 3
0
        public DispatchDetailsPDF GetDispatchDetails(int dispatchId)
        {
            DispatchDetailsPDF result = new DispatchDetailsPDF();
            List <OrderPositionsDispatchInfoPDF> listOfOrderPositionsDispatchInfoPDF = new List <OrderPositionsDispatchInfoPDF>();
            Dispatch       dispatch    = _context.Dispatches.FirstOrDefault(d => d.Id == dispatchId && d.Deleted_At == null);
            int            cmrId       = Convert.ToInt32(dispatch.CMR_Id);
            CMR_Dispatches cmrDispatch = _context.CMR_Dispatches.FirstOrDefault(c => c.Id == cmrId && c.Deleted_At == null);
            List <Dispatches_Positions> dispatchPositions = _context.Dispatches_Positions.Where(d => d.Dispatch_Id == dispatchId && d.Deleted_At == null).ToList();

            foreach (var item in dispatchPositions)
            {
                Orders_Positions orderPosition            = _context.Orders_Positions.FirstOrDefault(o => o.Id == item.Order_Position_Id && o.Deleted_At == null);
                Order            order                    = _context.Orders.FirstOrDefault(o => o.Id == orderPosition.Order_id && o.Deleted_At == null);
                OrderPositionsDispatchInfoPDF toAddToList = new OrderPositionsDispatchInfoPDF();
                int?     amountReceived                   = orderPosition.Amount_Received;
                decimal? weightReceived                   = orderPosition.Weight_Gross_Received;
                DateTime dateDispatch = dispatch.Created_At.Value.AddMilliseconds(-1);//bo znak mniejszośc działa jak <=
                List <Dispatches_Positions> listOfdispatchesPositionsForOrderPosition = _context.Dispatches_Positions.Where(d => d.Order_Position_Id == orderPosition.Id && d.Deleted_At == null && d.Created_At.Value < dateDispatch).ToList();
                int?    amountBeforeDispatch = amountReceived - listOfdispatchesPositionsForOrderPosition.Sum(d => d.Amount);
                decimal?weightBeforeDispatch = weightReceived - listOfdispatchesPositionsForOrderPosition.Sum(d => d.Weight_Gross);
                int?    amountDispatch       = item.Amount;
                decimal?weightDispatch       = item.Weight_Gross;
                toAddToList.Id                     = item.Id;
                toAddToList.ATB                    = order.ATB;
                toAddToList.Container_Id           = order.Container_Id;
                toAddToList.Name                   = orderPosition.Name;
                toAddToList.Amount_Received        = amountReceived;
                toAddToList.Weight_Gross_Received  = weightReceived;
                toAddToList.Amount_Before_Dispatch = amountBeforeDispatch;
                toAddToList.Weight_Before_Dispatch = weightBeforeDispatch;
                toAddToList.Amount_Dispatch        = amountDispatch;
                toAddToList.Weight_Dispatch        = weightDispatch;
                listOfOrderPositionsDispatchInfoPDF.Add(toAddToList);
            }

            CarrierDispatch carrierDispatch = new CarrierDispatch();

            carrierDispatch.Carrier_Address = dispatch.Carrier_Address;
            carrierDispatch.Carrier_Email   = dispatch.Carrier_Email;
            carrierDispatch.Carrier_Name    = dispatch.Carrier_Name;
            carrierDispatch.Carrier_VAT_Id  = dispatch.Carrier_VAT_Id;

            ReceiverDispatch receiverDispatch = new ReceiverDispatch();

            receiverDispatch.Receiver_Address = dispatch.Receiver_Address;
            receiverDispatch.Receiver_Email   = dispatch.Receiver_Email;
            receiverDispatch.Receiver_Name    = dispatch.Receiver_Name;
            receiverDispatch.Receiver_VAT_Id  = dispatch.Receiver_VAT_Id;

            SenderDispatch senderDispatch = new SenderDispatch();

            if (cmrDispatch != null)
            {
                senderDispatch.Sender_Address = cmrDispatch.Sender_Address;
                senderDispatch.Sender_Email   = cmrDispatch.Sender_Email;
                senderDispatch.Sender_Name    = cmrDispatch.Sender_Name;
                senderDispatch.Sender_VAT_Id  = cmrDispatch.Sender_VAT_Id;
            }

            result.Id = dispatch.Id;
            result.Dispatch_Number      = dispatch.Dispatch_Number;
            result.Creation_Date        = dispatch.Creation_Date == null ? string.Empty : dispatch.Creation_Date.Value.ToString("dd-MM-yyyy");
            result.Car_Id               = dispatch.Car_Id;
            result.Destination          = cmrDispatch == null ? string.Empty : cmrDispatch.Destination;
            result.Carrier              = carrierDispatch;
            result.Receiver             = receiverDispatch;
            result.Sender               = senderDispatch;
            result.Duty_Doc_Id          = dispatch.Duty_Doc_Id;
            result.ListOfOrderPositions = listOfOrderPositionsDispatchInfoPDF;

            return(result);
        }