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")); } }
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")); } }
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); }