public long CancelToDelivery(ToDeliveryModel toDeliveryModel) { try { var toDeliveryMaster = toDeliveryModel.ToDeliveryMasterData; var toDeliveryDetailsList = toDeliveryModel.ToDeliveryDetailsList; var receiveSerialNoDetails = toDeliveryModel.ReceiveSerialNoDetails; var toDeliveryObject = _entities.to_delivery_master.Find(toDeliveryMaster.to_delivery_master_id); toDeliveryObject.status = "Canceled"; toDeliveryObject.is_active = false; toDeliveryObject.is_deleted = true; _entities.SaveChanges(); foreach (var item in toDeliveryDetailsList) { var toDeliveryDetails = new to_delivery_details(); toDeliveryDetails.delivered_quantity = item.delivered_quantity; var transferOrderDetailsData = _entities.transfer_order_details.Where(t => t.transfer_order_master_id == toDeliveryObject.transfer_order_master_id).ToList(); var fullReturn = true; foreach (var todItem in transferOrderDetailsData) { if (todItem.product_id == item.product_id && todItem.color_id == item.color_id && todItem.product_version_id == item.product_version_id) { todItem.transfered_quantity -= item.delivered_quantity; _entities.SaveChanges(); if (todItem.transfered_quantity != 0) { fullReturn = false; } } } if (fullReturn) { var xxx = _entities.transfer_order_master.Find(toDeliveryObject.transfer_order_master_id); xxx.status = "Created"; _entities.SaveChanges(); InventoryRepository updateInventoty = new InventoryRepository(); //'39' virtual in-transit warehouse----------------------------- updateInventoty.UpdateInventory("TO DELIVERY CANCEL", toDeliveryMaster.to_delivery_no, 39, toDeliveryMaster.from_warehouse_id ?? 0, item.product_id ?? 0, item.color_id ?? 0, item.product_version_id ?? 0, item.unit_id ?? 0, item.delivered_quantity ?? 0, toDeliveryMaster.created_by ?? 0); } else { var xxx = _entities.transfer_order_master.Find(toDeliveryObject.transfer_order_master_id); xxx.status = "Partially Delivered"; _entities.SaveChanges(); InventoryRepository updateInventoty = new InventoryRepository(); //'39' virtual in-transit warehouse----------------------------- updateInventoty.UpdateInventory("TO DELIVERY CANCEL", toDeliveryMaster.to_delivery_no, 39, toDeliveryMaster.from_warehouse_id ?? 0, item.product_id ?? 0, item.color_id ?? 0, item.product_version_id ?? 0, item.unit_id ?? 0, item.delivered_quantity ?? 0, toDeliveryMaster.created_by ?? 0); } } foreach (var item in receiveSerialNoDetails) { receive_serial_no_details receiveSerial = _entities.receive_serial_no_details.FirstOrDefault(r => r.imei_no == item.imei_no || r.imei_no2 == item.imei_no); receiveSerial.current_warehouse_id = toDeliveryMaster.from_warehouse_id; receiveSerial.deliver_date = null; receiveSerial.to_deliver_master_id = null; _entities.SaveChanges(); } return(1); } catch (Exception) { return(0); } }
public long AddToDelivery(ToDeliveryModel toDeliveryModel) { try { var toDeliveryMaster = toDeliveryModel.ToDeliveryMasterData; var toDeliveryDetailsList = toDeliveryModel.ToDeliveryDetailsList; var receiveSerialNoDetails = toDeliveryModel.ReceiveSerialNoDetails; // generate order_no long toDeliverySerial = _entities.to_delivery_master.Max(po => (long?)po.to_delivery_master_id) ?? 0; toDeliverySerial++; var toDeliveryStr = toDeliverySerial.ToString().PadLeft(7, '0'); string toDeliveryNo = "TO-DN" + "-" + toDeliveryStr; toDeliveryMaster.to_delivery_no = toDeliveryNo; toDeliveryMaster.to_delivery_date = DateTime.Now; toDeliveryMaster.transfer_order_master_id = toDeliveryModel.ToDeliveryMasterData.transfer_order_master_id; toDeliveryMaster.courier_id = toDeliveryModel.ToDeliveryMasterData.courier_id; toDeliveryMaster.courier_slip_no = toDeliveryModel.ToDeliveryMasterData.courier_slip_no; toDeliveryMaster.from_warehouse_id = toDeliveryModel.ToDeliveryMasterData.from_warehouse_id; toDeliveryMaster.to_warehouse_id = toDeliveryModel.ToDeliveryMasterData.to_warehouse_id; toDeliveryMaster.remarks = toDeliveryModel.ToDeliveryMasterData.remarks; toDeliveryMaster.status = "RFD"; toDeliveryMaster.created_by = toDeliveryModel.ToDeliveryMasterData.created_by; toDeliveryMaster.created_date = DateTime.Now; toDeliveryMaster.updated_by = toDeliveryModel.ToDeliveryMasterData.updated_by; toDeliveryMaster.updated_date = DateTime.Now; toDeliveryMaster.is_active = true; toDeliveryMaster.is_deleted = false; _entities.to_delivery_master.Add(toDeliveryMaster); _entities.SaveChanges(); long toDeliveryMasterId = toDeliveryMaster.to_delivery_master_id; var transferOrderTotalQty = 0; var deliveredTotalQty = 0; foreach (var item in toDeliveryDetailsList) { var toDeliveryDetails = new to_delivery_details(); toDeliveryDetails.to_delivery_master_id = toDeliveryMasterId; toDeliveryDetails.product_id = item.product_id; toDeliveryDetails.color_id = item.color_id; toDeliveryDetails.product_version_id = item.product_version_id; toDeliveryDetails.unit_id = item.unit_id; toDeliveryDetails.to_quantity = item.to_quantity; toDeliveryDetails.delivered_quantity = item.delivered_quantity; if (toDeliveryDetails.delivered_quantity > 0) //maruf { _entities.to_delivery_details.Add(toDeliveryDetails); } long saved = _entities.SaveChanges(); if (saved > 0) { // update inventory InventoryRepository updateInventoty = new InventoryRepository(); //'39' virtual in-transit warehouse----------------------------- updateInventoty.UpdateInventory("TO RFD", toDeliveryMaster.to_delivery_no, toDeliveryMaster.from_warehouse_id ?? 0, 39, toDeliveryDetails.product_id ?? 0, toDeliveryDetails.color_id ?? 0, toDeliveryDetails.product_version_id ?? 0, toDeliveryDetails.unit_id ?? 0, toDeliveryDetails.delivered_quantity ?? 0, toDeliveryMaster.created_by ?? 0); } long transferOrderDetailsId = item.transfer_order_details_id; transfer_order_details transferOrderDetails = _entities.transfer_order_details.Find(transferOrderDetailsId); // Maruf: updating paramenters to check delivery status transferOrderDetails.transfered_quantity += item.delivered_quantity; transferOrderTotalQty += toDeliveryDetails.to_quantity ?? 0; deliveredTotalQty += toDeliveryDetails.delivered_quantity ?? 0; _entities.SaveChanges(); } // maruf: updating delivery status 19.Oct.2016 var transferOrderMaster = _entities.transfer_order_master.FirstOrDefault(r => r.transfer_order_master_id == toDeliveryModel.ToDeliveryMasterData.transfer_order_master_id); transferOrderMaster.status = (deliveredTotalQty >= transferOrderTotalQty) ? "Delivered" : "Partially Delivered"; _entities.SaveChanges(); foreach (var item in receiveSerialNoDetails) { receive_serial_no_details receiveSerial = _entities.receive_serial_no_details.FirstOrDefault(r => r.imei_no == item.imei_no || r.imei_no2 == item.imei_no); receiveSerial.current_warehouse_id = 39; receiveSerial.deliver_date = DateTime.Now; receiveSerial.to_deliver_master_id = toDeliveryMaster.to_delivery_master_id; _entities.SaveChanges(); } return(1); } catch (Exception) { return(0); } }