public bool ConfirmDelivery(long delivery_master_id, long user_id) { try { //Update Delivery Master var deliveryMaster = _entities.delivery_master.SingleOrDefault(dm => dm.delivery_master_id == delivery_master_id); deliveryMaster.status = "EMI-Delivered"; deliveryMaster.delivered_by = user_id; deliveryMaster.delivery_date = DateTime.Now; deliveryMaster.receive_by = user_id; deliveryMaster.receive_date = DateTime.Now; _entities.SaveChanges(); //Get Delivery Master Id In receive Serial table var receiveSerialList = _entities.receive_serial_no_details.Where(rsd => rsd.deliver_master_id == delivery_master_id) .ToList(); var detailsList = _entities.delivery_details.Where(d => d.delivery_master_id == delivery_master_id).ToList(); InventoryRepository updateInventoty = new InventoryRepository(); var intransitWarehouseId = _entities.warehouses.SingleOrDefault(k => k.warehouse_name == "In Transit").warehouse_id; //Get To Warehouse Id var toWarehouseId = _entities.warehouses.SingleOrDefault( a => a.warehouse_name == "Internal EMI Warehouse").warehouse_id; foreach (var item in detailsList) { //'39' virtual in-transit warehouse----------------------------- updateInventoty.UpdateInventory("INT-EMI-REQ-CONFIRM", deliveryMaster.delivery_no, intransitWarehouseId, toWarehouseId, item.product_id ?? 0, item.color_id ?? 0, item.product_version_id ?? 0, item.unit_id ?? 0, item.delivered_quantity ?? 0, user_id); } // Update Receive Serial foreach (var item in receiveSerialList) { receive_serial_no_details receiveSerial = _entities.receive_serial_no_details.FirstOrDefault(rsd => rsd.receive_serial_no_details_id == item.receive_serial_no_details_id); receiveSerial.current_warehouse_id = deliveryMaster.to_warehouse_id; receiveSerial.deliver_date = DateTime.Now; receiveSerial.sales_status = true; receiveSerial.sales_date = DateTime.Now; _entities.SaveChanges(); } return(true); } catch (Exception) { return(false); } }
//Update Courier Information public bool UpdateDeliveryMethod(delivery_master objUpdateCourier) { try { var courierInfo = _entities.delivery_master.Find(objUpdateCourier.delivery_master_id); courierInfo.delivery_method_id = objUpdateCourier.delivery_method_id; courierInfo.courier_id = objUpdateCourier.courier_id; courierInfo.delivery_person_name = objUpdateCourier.delivery_person_name; courierInfo.delivery_date = DateTime.Now; courierInfo.status = "Delivered"; _entities.SaveChanges(); //retrieve data from delivery_details var deliveryDetailsList = _entities.delivery_details.Where(d => d.delivery_master_id == objUpdateCourier.delivery_master_id).ToList(); foreach (var d in deliveryDetailsList) { var productId = d.product_id ?? 0; var colorId = d.color_id ?? 0; var unitId = d.unit_id ?? 0; var productVersionId = d.product_version_id ?? 0; var deliveryQty = d.delivered_quantity ?? 0; var toWarehouse = courierInfo.to_warehouse_id ?? 0; var userId = objUpdateCourier.updated_by ?? 0; var updateInventoty = new InventoryRepository(); updateInventoty.UpdateInventory("DELIVERED", courierInfo.delivery_no, 39, toWarehouse, productId, colorId, productVersionId, unitId, deliveryQty, userId); } var receiveSerialNoDetails = _entities.receive_serial_no_details.Where( d => d.deliver_master_id == objUpdateCourier.delivery_master_id).ToList(); 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 = courierInfo.to_warehouse_id; _entities.SaveChanges(); } return(true); } catch (Exception) { return(false); } }
public long RfdDelivery(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 = "Delivered"; toDeliveryObject.delivery_method = toDeliveryMaster.delivery_method; toDeliveryObject.courier_id = toDeliveryMaster.courier_id; toDeliveryObject.to_logistics_delivered_by = toDeliveryMaster.to_logistics_delivered_by; _entities.SaveChanges(); foreach (var item in toDeliveryDetailsList) { InventoryRepository updateInventoty = new InventoryRepository(); //'39' virtual in-transit warehouse----------------------------- updateInventoty.UpdateInventory("TO DELIVERED ", toDeliveryMaster.to_delivery_no, 39, toDeliveryMaster.to_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.to_warehouse_id; receiveSerial.deliver_date = DateTime.Now; _entities.SaveChanges(); } return(1); } catch (Exception) { return(0); } }
public bool CancelDelivery(long delivery_master_id, long user_id) { try { //Cancel Delivery Master var deliveryMaster = _entities.delivery_master.SingleOrDefault(dm => dm.delivery_master_id == delivery_master_id); deliveryMaster.status = "Cancel"; deliveryMaster.updated_by = user_id; deliveryMaster.updated_date = DateTime.Now; _entities.SaveChanges(); //Cancel Internal Requisition Master var intReqMaster = _entities.internal_requisition_master.SingleOrDefault( inrm => inrm.internal_requisition_master_id == deliveryMaster.requisition_master_id); intReqMaster.requisition_status = "Cancel"; _entities.SaveChanges(); var intransitWarehouseId = _entities.warehouses.SingleOrDefault(k => k.warehouse_name == "In Transit").warehouse_id; //Cancel Inventory var details = _entities.delivery_details.Where(a => a.delivery_master_id == delivery_master_id).ToList(); foreach (var deliveryDetails in details) { var updateInventoty = new InventoryRepository(); //From warehouse== Internal Requisition To warehouse=Central updateInventoty.UpdateInventory("INT-EMI-REQ-CANCEL", deliveryMaster.delivery_no, intransitWarehouseId, deliveryMaster.from_warehouse_id ?? 0, deliveryDetails.product_id ?? 0, deliveryDetails.color_id ?? 0, deliveryDetails.product_version_id ?? 0, 1, deliveryDetails.delivered_quantity ?? 0, user_id); } //Cancel Receive Serial Details var serialNo = _entities.receive_serial_no_details.Where(a => a.deliver_master_id == deliveryMaster.delivery_master_id) .ToList(); //Get Central warehouse var centralWarehouseId = _entities.warehouses.SingleOrDefault(k => k.warehouse_name == "WE Central Warehouse").warehouse_id; foreach (var receiveSerialNo in serialNo) { receive_serial_no_details receiveSerial = _entities.receive_serial_no_details.FirstOrDefault(r => r.receive_serial_no_details_id == receiveSerialNo.receive_serial_no_details_id); receiveSerial.current_warehouse_id = centralWarehouseId; receiveSerial.party_id = 0; receiveSerial.deliver_date = null; receiveSerial.sales_status = false; receiveSerial.sales_date = null; receiveSerial.is_gift = false; receiveSerial.gift_type = ""; receiveSerial.deliver_master_id = 0; receiveSerial.requisition_id = 0; _entities.SaveChanges(); } return(true); } catch (Exception) { return(false); } }
public long AddInternalEmiRequisition(InternalEmiRequisitionModel internalEmiRequisitionModel) { try { var internalRequisitionMasterData = internalEmiRequisitionModel.InternalRequisitionMaster; var internalRequisitionDetailsList = internalEmiRequisitionModel.InternalRequisitionDetails; var receiveSerialNoDetailsList = internalEmiRequisitionModel.ReceiveSerialNoDetails; var promotionDetailsList = internalEmiRequisitionModel.PromotionDetails; var installmentDetails = internalEmiRequisitionModel.InstallmentDetails; int save = 0; //Auto Number Creator long internalRequisitionSerial = _entities.internal_requisition_master.Max(re => (long?)re.internal_requisition_master_id) ?? 0; internalRequisitionSerial++; var internalRequisitionSerialNo = internalRequisitionSerial.ToString().PadLeft(7, '0'); string intReqNo = "INT-EMI-REQ-" + internalRequisitionSerialNo; //Master Table internalRequisitionMasterData.internal_requisition_no = intReqNo; internalRequisitionMasterData.from_warehouse_id = internalEmiRequisitionModel.InternalRequisitionMaster.from_warehouse_id; internalRequisitionMasterData.to_department = internalEmiRequisitionModel.InternalRequisitionMaster.to_department; internalRequisitionMasterData.customar_name = internalEmiRequisitionModel.InternalRequisitionMaster.customar_name; internalRequisitionMasterData.mobile_no = internalEmiRequisitionModel.InternalRequisitionMaster.mobile_no; internalRequisitionMasterData.requisition_date = DateTime.Now; internalRequisitionMasterData.payment_type = "EMI"; internalRequisitionMasterData.pricing = internalEmiRequisitionModel.InternalRequisitionMaster.pricing; internalRequisitionMasterData.remarks = internalEmiRequisitionModel.InternalRequisitionMaster.remarks; internalRequisitionMasterData.requisition_status = "Created"; internalRequisitionMasterData.total_incentive_amount = internalRequisitionDetailsList.Sum(tin => tin.incentive_amount) ?? 0; internalRequisitionMasterData.total_amount = internalEmiRequisitionModel.InternalRequisitionMaster.total_amount; internalRequisitionMasterData.created_by = internalEmiRequisitionModel.InternalRequisitionMaster.created_by; internalRequisitionMasterData.created_date = DateTime.Now; _entities.internal_requisition_master.Add(internalRequisitionMasterData); _entities.SaveChanges(); //Details Table long internalRequisitionMasterId = internalRequisitionMasterData.internal_requisition_master_id; foreach (var item in internalRequisitionDetailsList) { var internalRequisitionDetails = new internal_requisition_details { internal_requisition_master_id = internalRequisitionMasterId, product_id = item.product_id, color_id = item.color_id, product_version_id = item.product_version_id, quantity = item.quantity, price = item.price, amount = item.amount, is_gift = false, incentive_amount = item.incentive_amount, promotion_master_id = item.promotion_master_id, }; _entities.internal_requisition_details.Add(internalRequisitionDetails); save = _entities.SaveChanges(); } //for promotion List--- foreach (var item in promotionDetailsList) { var internalRequisitionDetails = new internal_requisition_details { internal_requisition_master_id = internalRequisitionMasterId, product_id = item.product_id, color_id = item.color_id, product_version_id = item.product_version_id, quantity = item.quantity, price = item.price, amount = item.amount, is_gift = true, gift_type = "Promotional", incentive_amount = item.incentive_amount, promotion_master_id = item.promotion_master_id, }; _entities.internal_requisition_details.Add(internalRequisitionDetails); save = _entities.SaveChanges(); } if (save > 0) { var deliveryMaster = new delivery_master(); //Get To Warehouse Id var toWarehouseId = _entities.warehouses.SingleOrDefault( a => a.warehouse_name == "Internal EMI Warehouse").warehouse_id; //Get Delivery Party Id var partyId = _entities.warehouses.SingleOrDefault( a => a.warehouse_name == "Internal EMI Warehouse").party_id; //Get Party Address var partyAddress = _entities.parties.SingleOrDefault( a => a.party_name == "Internal EMI").address; long deliverySerial = _entities.delivery_master.Max(po => (long?)po.delivery_master_id) ?? 0; deliverySerial++; var deliveryStr = deliverySerial.ToString().PadLeft(7, '0'); string deliveryNo = "DN-INT-EMI-REQ" + "-" + deliveryStr; deliveryMaster.delivery_no = deliveryNo; deliveryMaster.delivery_date = DateTime.Now; deliveryMaster.party_id = partyId; deliveryMaster.requisition_master_id = internalRequisitionMasterId; deliveryMaster.courier_id = 0; deliveryMaster.courier_slip_no = ""; deliveryMaster.delivery_address = partyAddress; deliveryMaster.created_by = internalEmiRequisitionModel.InternalRequisitionMaster.created_by; deliveryMaster.created_date = DateTime.Now; deliveryMaster.from_warehouse_id = internalEmiRequisitionModel.InternalRequisitionMaster.from_warehouse_id; deliveryMaster.to_warehouse_id = toWarehouseId; deliveryMaster.status = "EMI-RFD"; deliveryMaster.remarks = "DN-INT-EMI-REQ"; deliveryMaster.total_amount = internalEmiRequisitionModel.InternalRequisitionMaster.total_amount; deliveryMaster.lot_no = ""; deliveryMaster.vehicle_no = "DN-INT-EMI-REQ"; deliveryMaster.truck_driver_name = "DN-INT-EMI-REQ"; deliveryMaster.truck_driver_mobile = "DN-INT-EMI-REQ"; _entities.delivery_master.Add(deliveryMaster); _entities.SaveChanges(); long deliveryMasterId = deliveryMaster.delivery_master_id; // Delivery Details Table foreach (var item in internalRequisitionDetailsList) { var deliveryDetails = new delivery_details() { delivery_master_id = deliveryMasterId, product_id = item.product_id, color_id = item.color_id, product_version_id = item.product_version_id, delivered_quantity = item.quantity, is_gift = item.is_gift, requisition_quantity = item.quantity, unit_price = item.product_id, line_total = item.amount, party_id = partyId, gift_type = item.gift_type, is_live_dummy = false }; _entities.delivery_details.Add(deliveryDetails); int saved = _entities.SaveChanges(); if (saved > 0) { // update inventory InventoryRepository updateInventoty = new InventoryRepository(); var intransitWarehouseId = _entities.warehouses.SingleOrDefault(k => k.warehouse_name == "In Transit").warehouse_id; var masterDelivery = _entities.delivery_master.Find(deliveryMasterId); //'39' virtual in-transit warehouse updateInventoty.UpdateInventory("INT-EMI-REQ-DELIVERY", masterDelivery.delivery_no, masterDelivery.from_warehouse_id ?? 0, intransitWarehouseId, item.product_id ?? 0, item.color_id ?? 0, item.product_version_id ?? 0, 1, item.quantity ?? 0, internalEmiRequisitionModel.InternalRequisitionMaster.created_by ?? 0); } } foreach (var item in promotionDetailsList) { var deliveryDetails = new delivery_details() { delivery_master_id = deliveryMasterId, product_id = item.product_id, color_id = item.color_id, product_version_id = item.product_version_id, delivered_quantity = item.quantity, is_gift = item.is_gift, requisition_quantity = item.quantity, unit_price = item.product_id, line_total = item.amount, party_id = partyId, gift_type = item.gift_type, is_live_dummy = false }; _entities.delivery_details.Add(deliveryDetails); int saved = _entities.SaveChanges(); if (saved > 0) { // update inventory InventoryRepository updateInventoty = new InventoryRepository(); var intransitWarehouseId = _entities.warehouses.SingleOrDefault(k => k.warehouse_name == "In Transit").warehouse_id; var masterDelivery = _entities.delivery_master.Find(deliveryMasterId); //'39' virtual in-transit warehouse updateInventoty.UpdateInventory("INT-EMI-REQ-DELIVERY", masterDelivery.delivery_no, masterDelivery.from_warehouse_id ?? 0, intransitWarehouseId, item.product_id ?? 0, item.color_id ?? 0, item.product_version_id ?? 0, 1, item.quantity ?? 0, internalEmiRequisitionModel.InternalRequisitionMaster.created_by ?? 0); } } //For Party Journal ////Get Party Account Balance //var partyJournal = // _entities.party_journal.Where(pj => pj.party_id == partyId) // .OrderByDescending(p => p.party_journal_id) // .FirstOrDefault(); //decimal partyAccountBalance = 0; //if (partyJournal != null) //{ // partyAccountBalance = partyJournal.closing_balance ?? 0; //} ////Find Invoice Total //decimal invoiceTotal = 0; //invoiceTotal = internalEmiRequisitionModel.InternalRequisitionMaster.total_amount ?? 0; //insert in both invoice master and party journal table ////Account Balance //decimal accountBalance = 0; //accountBalance = invoiceTotal + partyAccountBalance; //Invoice Master Table long InvoiceSerial = _entities.invoice_master.Max(po => (long?)po.invoice_master_id) ?? 0; InvoiceSerial++; var invStr = InvoiceSerial.ToString().PadLeft(7, '0'); string invoiceNo = "INV-" + "INT-EMI-REQ" + "-" + invStr; invoice_master insert_invoice = new invoice_master { invoice_no = invoiceNo, invoice_date = System.DateTime.Now, party_id = partyId, requisition_master_id = internalRequisitionMasterId, company_id = 0, remarks = internalEmiRequisitionModel.InternalRequisitionMaster.remarks, created_by = internalEmiRequisitionModel.InternalRequisitionMaster.created_by, created_date = DateTime.Now, incentive_amount = internalRequisitionDetailsList.Sum(tin => tin.incentive_amount), item_total = internalEmiRequisitionModel.InternalRequisitionMaster.total_amount, party_type_id = 11, rebate_total = 0, invoice_total = 0, account_balance = 0, }; _entities.invoice_master.Add(insert_invoice); _entities.SaveChanges(); long InvoiceMasterId = insert_invoice.invoice_master_id; //Invoice Details Table foreach (var item in internalRequisitionDetailsList) { var getProductCategory = _entities.products.SingleOrDefault(p => p.product_id == item.product_id).product_category_id; var getProductUnit = _entities.products.SingleOrDefault(p => p.product_id == item.product_id).unit_id; var invoiceDetails_insert = new invoice_details { invoice_master_id = InvoiceMasterId, product_category_id = getProductCategory, product_id = item.product_id, color_id = item.color_id, product_version_id = item.product_version_id, unit_id = getProductUnit, price = item.price, quantity = item.quantity, line_total = item.amount, is_gift = false, is_live_dummy = false }; _entities.invoice_details.Add(invoiceDetails_insert); _entities.SaveChanges(); } //Invoice Details Table foreach (var item in promotionDetailsList) { var getProductCategory = _entities.products.SingleOrDefault(p => p.product_id == item.product_id).product_category_id; var getProductUnit = _entities.products.SingleOrDefault(p => p.product_id == item.product_id).unit_id; var invoiceDetails_insert = new invoice_details { invoice_master_id = InvoiceMasterId, product_category_id = getProductCategory, product_id = item.product_id, color_id = item.color_id, product_version_id = item.product_version_id, unit_id = getProductUnit, price = item.price, quantity = item.quantity, line_total = item.amount, is_gift = true, is_live_dummy = false }; _entities.invoice_details.Add(invoiceDetails_insert); _entities.SaveChanges(); } //Party Journal // partyJournalRepository.PartyJournalEntry("INVOICE", partyId ?? 0, 0, "Invoice", internalEmiRequisitionModel.InternalRequisitionMaster.created_by ?? 0, invoiceNo); //Receive Serial Table var intransitWarehouse = _entities.warehouses.SingleOrDefault(k => k.warehouse_name == "In Transit").warehouse_id; //Get Delivery Party Id var partyIdForDelivery = _entities.warehouses.SingleOrDefault( a => a.warehouse_name == "Internal EMI Warehouse").party_id; foreach (var item in receiveSerialNoDetailsList) { receive_serial_no_details receiveSerialNoDetails = _entities.receive_serial_no_details.FirstOrDefault(r => r.imei_no == item.imei_no || r.imei_no2 == item.imei_no2); receiveSerialNoDetails.current_warehouse_id = intransitWarehouse; receiveSerialNoDetails.party_id = partyIdForDelivery; receiveSerialNoDetails.deliver_date = DateTime.Now; receiveSerialNoDetails.requisition_id = internalRequisitionMasterId; receiveSerialNoDetails.deliver_master_id = deliveryMasterId; receiveSerialNoDetails.is_gift = item.is_gift; receiveSerialNoDetails.is_live_dummy = false; _entities.SaveChanges(); } foreach (var item in installmentDetails) { var installmentDetailsList = new installment_details { internal_requisition_master_id = internalRequisitionMasterId, installment_no = item.installment_no, installment_date = item.installment_date, installment_amount = item.installment_amount }; _entities.installment_details.Add(installmentDetailsList); save = _entities.SaveChanges(); } } return(1); } catch (Exception ex) { throw ex; } }
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); } }
public bool CancelDelivery(long delivery_master_id, long user_id) { try { //Cancel Delivery Master var deliveryMaster = _entities.delivery_master.SingleOrDefault(dm => dm.delivery_master_id == delivery_master_id); deliveryMaster.status = "Cancel"; deliveryMaster.updated_by = user_id; deliveryMaster.updated_date = DateTime.Now; _entities.SaveChanges(); //Cancel Internal Requisition Master var intReqMaster = _entities.internal_requisition_master.SingleOrDefault( inrm => inrm.internal_requisition_master_id == deliveryMaster.requisition_master_id); intReqMaster.requisition_status = "Cancel"; _entities.SaveChanges(); //Cancel Invoice Master var invoiceMaster = _entities.invoice_master.SingleOrDefault( im => im.requisition_master_id == intReqMaster.internal_requisition_master_id); invoiceMaster.is_active = false; invoiceMaster.is_deleted = true; invoiceMaster.updated_by = user_id; invoiceMaster.updated_date = DateTime.Now; _entities.SaveChanges(); // Get Intransit Warehouse var intransitWarehouseId = _entities.warehouses.SingleOrDefault(k => k.warehouse_name == "In Transit").warehouse_id; //Cancel Inventory var details = _entities.delivery_details.Where(a => a.delivery_master_id == delivery_master_id).ToList(); foreach (var deliveryDetails in details) { var updateInventoty = new InventoryRepository(); //From warehouse== Internal Requisition To warehouse=Central updateInventoty.UpdateInventory("INT-REQ-CANCEL", deliveryMaster.delivery_no, intransitWarehouseId, deliveryMaster.from_warehouse_id ?? 0, deliveryDetails.product_id ?? 0, deliveryDetails.color_id ?? 0, deliveryDetails.product_version_id ?? 0, 1, deliveryDetails.delivered_quantity ?? 0, user_id); } //Cancel Party Journal var partyJournal = _entities.party_journal.Where(pj => pj.party_id == deliveryMaster.party_id) .OrderByDescending(p => p.party_journal_id) .FirstOrDefault(); decimal partyAccountBalance = 0; if (partyJournal != null) { partyAccountBalance = partyJournal.closing_balance ?? 0; } //calculate Invoice total decimal?invoiceTotal = _entities.internal_requisition_master.SingleOrDefault(a => a.internal_requisition_master_id == deliveryMaster.requisition_master_id).total_amount; partyJournalRepository.PartyJournalEntry("RETURN_INVOICE", deliveryMaster.party_id ?? 0, invoiceTotal ?? 0, "Cancel", user_id, intReqMaster.internal_requisition_no); //Cancel Receive Serial Details var serialNo = _entities.receive_serial_no_details.Where(a => a.deliver_master_id == deliveryMaster.delivery_master_id) .ToList(); //Get Delivery From Warehouse var deliveryMasterFromWarehouse = _entities.delivery_master.SingleOrDefault(dm => dm.delivery_master_id == delivery_master_id) .from_warehouse_id; //Get Central warehouse //var centralWarehouseId = // _entities.warehouses.SingleOrDefault(k => k.warehouse_name == "WE Central Warehouse").warehouse_id; foreach (var receiveSerialNo in serialNo) { receive_serial_no_details receiveSerial = _entities.receive_serial_no_details.FirstOrDefault(r => r.receive_serial_no_details_id == receiveSerialNo.receive_serial_no_details_id); receiveSerial.current_warehouse_id = deliveryMasterFromWarehouse; receiveSerial.party_id = 0; receiveSerial.deliver_date = null; receiveSerial.sales_status = false; receiveSerial.sales_date = null; receiveSerial.is_gift = false; receiveSerial.gift_type = ""; receiveSerial.deliver_master_id = 0; receiveSerial.requisition_id = 0; _entities.SaveChanges(); } return(true); } catch (Exception) { return(false); } }
public long AddGrn(GrnModel grnModel) { try { var grnMaster = grnModel.GrnMasterData; var grnDetailsList = grnModel.GrnDetailsList; var receiveSerialNoDetails = grnModel.ReceiveSerialNoDetails; bool isDuplicateImei = false; foreach (var item in receiveSerialNoDetails) { long imeiForDuplicateSearch = item.imei_no ?? 0; var xxx = _entities.receive_serial_no_details.Where(r => r.imei_no == imeiForDuplicateSearch).ToList(); if (xxx.Count > 0) { isDuplicateImei = true; } } if (!isDuplicateImei) { // generate order_no long grnSerial = _entities.grn_master.Max(po => (long?)po.grn_master_id) ?? 0; grnSerial++; var grnStr = grnSerial.ToString().PadLeft(7, '0'); // SAVING GRN MASTER string grnNo = "GRN-" + grnStr; grnMaster.supplier_id = grnModel.GrnMasterData.supplier_id; grnMaster.total_amount_including_vattax = grnModel.GrnMasterData.total_amount_including_vattax; grnMaster.status = grnModel.GrnMasterData.status; grnMaster.company_id = grnModel.GrnMasterData.company_id; grnMaster.grn_date = grnModel.GrnMasterData.grn_date; grnMaster.purchase_order_master_id = grnModel.GrnMasterData.purchase_order_master_id; grnMaster.vat_total = grnModel.GrnMasterData.vat_total; grnMaster.warehouse_id = grnModel.GrnMasterData.warehouse_id; grnMaster.created_by = grnModel.GrnMasterData.created_by; grnMaster.created_date = DateTime.Now; grnMaster.updated_by = grnModel.GrnMasterData.updated_by; grnMaster.updated_date = DateTime.Now; grnMaster.remarks = grnModel.GrnMasterData.remarks; grnMaster.lot_no = grnModel.GrnMasterData.lot_no; grnMaster.lc_id = 0; grnMaster.grn_no = grnNo; grnMaster.tax_total = grnModel.GrnMasterData.tax_total; grnMaster.total_amount_without_vattax = grnModel.GrnMasterData.total_amount_without_vattax; grnMaster.mrr_status = false; _entities.grn_master.Add(grnMaster); _entities.SaveChanges(); // Maruf: 28.Feb.2016: Update CiPl received = true //var ciPlMaster = _entities.ci_pl_master.Find(grnModel.GrnMasterData.purchase_order_master_id); var ciPlMaster = _entities.ci_pl_master.FirstOrDefault(c => c.purchase_order_master_id == grnModel.GrnMasterData.purchase_order_master_id); ciPlMaster.is_received = true; _entities.SaveChanges(); long grnMasterId = grnMaster.grn_master_id; foreach (var item in grnDetailsList) { var grnDetails = new grn_details { product_id = item.product_id, grn_master_id = grnMasterId, unit_id = item.unit_id, unit_price = item.unit_price, pi_quantity = item.pi_quantity, amount = item.amount, brand_id = item.brand_id, color_id = item.color_id, product_version_id = item.product_version_id, receive_quantity = item.receive_quantity, vat_amount = item.vat_amount, tax_amount = item.tax_amount, line_total = item.line_total, size_id = item.size_id, vat_pcnt = item.vat_pcnt, tax_pcnt = item.tax_pcnt }; _entities.grn_details.Add(grnDetails); // _entities.SaveChanges(); // kiron 04.09.2016 long saved = _entities.SaveChanges(); if (saved > 0) { // update inventory InventoryRepository updateInventoty = new InventoryRepository(); // Maruf: 04.Apr.2017: move product from purchase(29) WH to GRN(4) WH; it will move to central after MRR process updateInventoty.UpdateInventory("GRN", grnMaster.grn_no, 29, 4, grnDetails.product_id ?? 0, grnDetails.color_id ?? 0, grnDetails.product_version_id ?? 0, grnDetails.unit_id ?? 0, grnDetails.receive_quantity ?? 0, grnMaster.created_by ?? 0); } long purchaseOrderDetailsId = item.purchase_order_details_id; purchase_order_details poDetails = _entities.purchase_order_details.Find(purchaseOrderDetailsId); poDetails.receive_qty += item.receive_quantity; _entities.SaveChanges(); } foreach (var item in receiveSerialNoDetails) { int c = 0; var receiveSerialNoDetailsData = new receive_serial_no_details { product_id = item.product_id, grn_master_id = grnMasterId, brand_id = item.brand_id, color_id = item.color_id, product_version_id = item.product_version_id, imei_no = item.imei_no, imei_no2 = item.imei_no2, received_warehouse_id = 4, // 4-GRN WH; will be moved to central after MRR current_warehouse_id = 4, // 4-GRN WH; will be moved to central after MRR received_date = item.received_date, requisition_id = 0, deliver_master_id = 0, sales_status = false, price_protected = false, carton_no = item.carton_no }; _entities.receive_serial_no_details.Add(receiveSerialNoDetailsData); c++; if (c == 100) { c = 0; _entities.SaveChanges(); } } _entities.SaveChanges(); return(1); } return(0); } catch (Exception) { return(0); } }
public long AddDelivery(DeliveryModel deliveryModel) { try { var deliveryMaster = deliveryModel.DeliveryMasterData; var deliveryDetailsList = deliveryModel.DeliveryDetailsList; var receiveSerialNoDetails = deliveryModel.ReceiveSerialNoDetails; long counter = 0; //Get Party type Prefix by party Id :Kiron:27/10/2016 var partyTypePrefix = (from ptype in _entities.party_type join par in _entities.parties on ptype.party_type_id equals par.party_type_id where par.party_id == deliveryMaster.party_id select new { party_prefix = ptype.party_prefix }).FirstOrDefault(); // IMEI Validity Check foreach (var item in receiveSerialNoDetails) { long imeiForDuplicateSearch = item.imei_no ?? 0; var xxx = _entities.receive_serial_no_details.FirstOrDefault(r => r.imei_no == imeiForDuplicateSearch || r.imei_no2 == imeiForDuplicateSearch); var versionId = deliveryDetailsList.FirstOrDefault(d => d.product_id == xxx.product_id && d.color_id == xxx.color_id).product_version_id; // check if imei valid if (xxx == null) { return(2); } if (xxx.product_id != item.product_id || xxx.color_id != item.color_id || xxx.product_version_id != versionId) { return(3); } // check if imei already delivered if (xxx.deliver_master_id != 0 && xxx.deliver_master_id != null) { counter++; } } if (counter == 0) { // generate order_no long deliverySerial = _entities.delivery_master.Max(po => (long?)po.delivery_master_id) ?? 0; deliverySerial++; var deliveryStr = deliverySerial.ToString().PadLeft(7, '0'); //string orderNo = "ORD/" + DateTime.Now.Year + "/" + poSerial; string deliveryNo = "DN-" + partyTypePrefix.party_prefix + "-" + deliveryStr; deliveryMaster.delivery_no = deliveryNo; deliveryMaster.delivery_date = deliveryModel.DeliveryMasterData.delivery_date; deliveryMaster.party_id = deliveryModel.DeliveryMasterData.party_id; deliveryMaster.requisition_master_id = deliveryModel.DeliveryMasterData.requisition_master_id; deliveryMaster.courier_id = deliveryModel.DeliveryMasterData.courier_id; deliveryMaster.company_id = deliveryModel.DeliveryMasterData.company_id; deliveryMaster.courier_slip_no = deliveryModel.DeliveryMasterData.courier_slip_no; deliveryMaster.delivery_address = deliveryModel.DeliveryMasterData.delivery_address; deliveryMaster.delivered_by = deliveryModel.DeliveryMasterData.delivered_by; deliveryMaster.from_warehouse_id = deliveryModel.DeliveryMasterData.from_warehouse_id; deliveryMaster.to_warehouse_id = deliveryModel.DeliveryMasterData.to_warehouse_id; deliveryMaster.status = "RFD"; deliveryMaster.remarks = deliveryModel.DeliveryMasterData.remarks; deliveryMaster.total_amount = deliveryModel.DeliveryMasterData.total_amount; deliveryMaster.lot_no = deliveryModel.DeliveryMasterData.lot_no; deliveryMaster.vehicle_no = deliveryModel.DeliveryMasterData.vehicle_no; deliveryMaster.truck_driver_name = deliveryModel.DeliveryMasterData.truck_driver_name; deliveryMaster.truck_driver_mobile = deliveryModel.DeliveryMasterData.truck_driver_mobile; _entities.delivery_master.Add(deliveryMaster); _entities.SaveChanges(); long deliveryMasterId = deliveryMaster.delivery_master_id; var requisitionTotalQty = 0; var deliveryTotalQty = 0; foreach (var item in deliveryDetailsList) { int liftinQuantity = 0; var deliveryDetails = new delivery_details(); if (item.is_gift == false || item.is_gift == null) { deliveryDetails.delivery_master_id = deliveryMasterId; deliveryDetails.party_id = item.party_id; deliveryDetails.product_id = item.product_id; deliveryDetails.product_version_id = item.product_version_id; deliveryDetails.requisition_quantity = item.requisition_quantity; deliveryDetails.unit_id = item.unit_id; deliveryDetails.unit_price = item.unit_price; deliveryDetails.color_id = item.color_id; deliveryDetails.delivered_quantity = item.delivered_quantity; deliveryDetails.line_total = item.line_total; deliveryDetails.is_gift = false; deliveryDetails.gift_type = ""; deliveryDetails.is_live_dummy = item.is_live_dummy; liftinQuantity += item.delivered_quantity ?? 0; } else { deliveryDetails.delivery_master_id = deliveryMasterId; deliveryDetails.party_id = item.party_id; deliveryDetails.product_id = item.product_id; deliveryDetails.product_version_id = item.product_version_id; deliveryDetails.requisition_quantity = item.requisition_quantity; deliveryDetails.unit_id = item.unit_id; deliveryDetails.unit_price = 0; deliveryDetails.color_id = item.color_id; deliveryDetails.delivered_quantity = item.delivered_quantity; deliveryDetails.line_total = 0; deliveryDetails.is_gift = item.is_gift; deliveryDetails.gift_type = item.gift_type; deliveryDetails.is_live_dummy = false; liftinQuantity += item.delivered_quantity ?? 0; } if (deliveryDetails.delivered_quantity > 0) //maruf { _entities.delivery_details.Add(deliveryDetails); } long saved = _entities.SaveChanges(); //liftingQuantity add---- var invLog = _entities.invoice_log.FirstOrDefault(xxx => xxx.requisition_master_id == deliveryMaster.requisition_master_id); invLog.lifting_quantity += liftinQuantity; _entities.SaveChanges(); if (saved > 0) { // update inventory var updateInventoty = new InventoryRepository(); //'39' virtual in-transit warehouse----------------------------- updateInventoty.UpdateInventory("RFD", deliveryMaster.delivery_no, deliveryMaster.from_warehouse_id ?? 0, 39, deliveryDetails.product_id ?? 0, deliveryDetails.color_id ?? 0, deliveryDetails.product_version_id ?? 0, deliveryDetails.unit_id ?? 0, deliveryDetails.delivered_quantity ?? 0, deliveryMaster.delivered_by ?? 0); } long requisitionDetailsId = item.requisition_details_id; var requisitionDetails = _entities.requisition_details.Find(requisitionDetailsId); // Maruf: updating paramenters to check delivery status requisitionDetails.delivered_quantity += item.delivered_quantity; requisitionTotalQty += requisitionDetails.quantity ?? 0; deliveryTotalQty += requisitionDetails.delivered_quantity ?? 0; _entities.SaveChanges(); } // maruf: updating delivery status 19.Oct.2016 var requisitionMaster = _entities.requisition_master.FirstOrDefault(r => r.requisition_master_id == deliveryModel.DeliveryMasterData.requisition_master_id); requisitionMaster.delivery_status = (deliveryTotalQty >= requisitionTotalQty) ? "Delivered" : "Partially Delivered"; _entities.SaveChanges(); //long counter = 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.product_id = receive_serial_no_details.product_id; //receiveSerial.brand_id = receive_serial_no_details.brand_id; //receiveSerial.color_id = receive_serial_no_details.color_id; //receiveSerial.imei_no = receive_serial_no_details.imei_no; //receiveSerial.received_warehouse_id = receive_serial_no_details.received_warehouse_id; //receiveSerial.received_date = receive_serial_no_details.received_date; //receiveSerial.grn_master_id = receive_serial_no_details.grn_master_id; //receiveSerial.sales_status = receive_serial_no_details.sales_status; //receiveSerial.current_warehouse_id = deliveryModel.DeliveryMasterData.to_warehouse_id; //maruf: 07.Dec.2016: setting in-transit warehouse instead of party warehouse. It will be updated by party warehouse while it will be received by party //receiveSerial.current_warehouse_id = deliveryMaster.to_warehouse_id;//comments on 22.05.2017 receiveSerial.current_warehouse_id = 39;// 22.05.2017//when deliver need to go product in Intransit warehouse. receiveSerial.party_id = deliveryMaster.party_id; receiveSerial.deliver_date = deliveryMaster.delivery_date; receiveSerial.requisition_id = deliveryMaster.requisition_master_id; receiveSerial.deliver_master_id = deliveryMaster.delivery_master_id; receiveSerial.is_gift = item.is_gift; receiveSerial.is_live_dummy = item.is_live_dummy; _entities.SaveChanges(); } return(1); } return(0); } catch (Exception) { return(0); } }
public long AddOnlineREquisition(StronglyType.OnlineRequisitionModel onlineRequisitionModel) { try { long deliveryMasterId = 0; int save = 0; var requisitionModel = onlineRequisitionModel.RequisitionMaster; var requitionDetails = onlineRequisitionModel.RequisitionDetailses; var serialNumber = onlineRequisitionModel.ReceiveSerialNoDetails; var deliveryMaster = new delivery_master(); var deliveryDetails = new delivery_details(); var partyTypePrefix = (from ptype in _entities.party_type join par in _entities.parties on ptype.party_type_id equals par.party_type_id where par.party_id == requisitionModel.party_id select new { party_prefix = ptype.party_prefix }).FirstOrDefault(); int RequisitionSerial = _entities.requisition_master.Max(rq => (int?)rq.requisition_master_id) ?? 0; RequisitionSerial++; var rqStr = RequisitionSerial.ToString().PadLeft(7, '0'); string requisitionNo = "REQ-" + partyTypePrefix.party_prefix + "-" + rqStr; requisitionModel.requisition_code = requisitionNo; requisitionModel.requisition_date = onlineRequisitionModel.RequisitionMaster.requisition_date; requisitionModel.expected_receiving_date = DateTime.Now; requisitionModel.warehouse_from = onlineRequisitionModel.RequisitionMaster.warehouse_from; requisitionModel.remarks = onlineRequisitionModel.RequisitionMaster.remarks; requisitionModel.amount = onlineRequisitionModel.RequisitionMaster.amount; requisitionModel.party_type_id = onlineRequisitionModel.RequisitionMaster.party_type_id; requisitionModel.party_id = onlineRequisitionModel.RequisitionMaster.party_id; requisitionModel.created_by = onlineRequisitionModel.RequisitionMaster.created_by; requisitionModel.created_date = DateTime.Now; requisitionModel.updated_by = onlineRequisitionModel.RequisitionMaster.created_by; requisitionModel.updated_date = DateTime.Now; requisitionModel.is_invoice_created = false; requisitionModel.status = "Approved"; requisitionModel.delivery_status = "Delivered"; requisitionModel.edit_count = 0; requisitionModel.region_id = 0; requisitionModel.area_id = 0; requisitionModel.credit_limit = 0; requisitionModel.credit_term = onlineRequisitionModel.RequisitionMaster.credit_term; requisitionModel.contact_person_mobile = onlineRequisitionModel.RequisitionMaster.contact_person_mobile; requisitionModel.address = onlineRequisitionModel.RequisitionMaster.address; requisitionModel.is_demo = ""; requisitionModel.discount_percentage = 0; requisitionModel.discount_amount = 0; requisitionModel.incentive_percentage = 0; requisitionModel.incentive_amount = 0; requisitionModel.finance_status = "Not Approved"; requisitionModel.is_deleted = false; requisitionModel.territory_id = 0; requisitionModel.price_type = onlineRequisitionModel.RequisitionMaster.price_type; requisitionModel.requisition_type = onlineRequisitionModel.RequisitionMaster.requisition_type; requisitionModel.reference_no = onlineRequisitionModel.RequisitionMaster.reference_no; requisitionModel.is_requisition_closed = false; requisitionModel.return_quantity = 0; requisitionModel.invoicable_quantity = 0; _entities.requisition_master.Add(requisitionModel); _entities.SaveChanges(); Int64 RequisitionMasterId = requisitionModel.requisition_master_id; //save requisition details foreach (var item in requitionDetails) { var ooo = _entities.products.SingleOrDefault(a => a.product_id == item.product_id); var requisitionDetails = new requisition_details(); requisitionDetails.requisition_master_id = RequisitionMasterId; requisitionDetails.product_id = item.product_id; requisitionDetails.color_id = item.color_id; requisitionDetails.brand_id = item.brand_id; requisitionDetails.product_category_id = ooo.product_category_id; requisitionDetails.unit_id = ooo.unit_id; requisitionDetails.price = item.price; requisitionDetails.delivered_quantity = item.quantity; requisitionDetails.quantity = item.quantity; requisitionDetails.line_total = item.line_total; requisitionDetails.product_version_id = item.product_version_id; requisitionDetails.discount_amount = item.discount_amount; requisitionDetails.discount = item.discount; requisitionDetails.price_amount = item.price_amount; requisitionDetails.return_quantity = 0; requisitionDetails.invoice_quantity = 0; if (item.is_gift == true) { requisitionDetails.is_gift = true; requisitionDetails.gift_type = "Promotional Gift"; } if (item.promotion_master_id != null) { requisitionDetails.promotion_master_id = item.promotion_master_id; } _entities.requisition_details.Add(requisitionDetails); save = _entities.SaveChanges(); } if (save > 0) { var ToWarehouse = _entities.warehouses.SingleOrDefault( a => a.party_id == onlineRequisitionModel.RequisitionMaster.party_id); long deliverySerial = _entities.delivery_master.Max(po => (long?)po.delivery_master_id) ?? 0; deliverySerial++; var deliveryStr = deliverySerial.ToString().PadLeft(7, '0'); string deliveryNo = "DN-" + partyTypePrefix.party_prefix + "-" + deliveryStr; deliveryMaster.delivery_no = deliveryNo; deliveryMaster.delivery_date = DateTime.Now; deliveryMaster.party_id = onlineRequisitionModel.RequisitionMaster.party_id; deliveryMaster.requisition_master_id = RequisitionMasterId; deliveryMaster.courier_id = 0; deliveryMaster.courier_slip_no = ""; deliveryMaster.delivery_address = onlineRequisitionModel.RequisitionMaster.address; deliveryMaster.delivered_by = onlineRequisitionModel.RequisitionMaster.created_by; deliveryMaster.from_warehouse_id = onlineRequisitionModel.RequisitionMaster.warehouse_from; deliveryMaster.to_warehouse_id = ToWarehouse.warehouse_id; deliveryMaster.status = "Deliverd"; deliveryMaster.remarks = ""; deliveryMaster.total_amount = onlineRequisitionModel.RequisitionMaster.amount; deliveryMaster.lot_no = ""; deliveryMaster.vehicle_no = ""; deliveryMaster.truck_driver_name = ""; deliveryMaster.truck_driver_mobile = ""; _entities.delivery_master.Add(deliveryMaster); _entities.SaveChanges(); deliveryMasterId = deliveryMaster.delivery_master_id; //delivery details foreach (var item in requitionDetails) { var ooo = _entities.products.SingleOrDefault(a => a.product_id == item.product_id); var deliveryDetails1 = new delivery_details(); deliveryDetails1.delivery_master_id = deliveryMasterId; deliveryDetails1.product_id = item.product_id; deliveryDetails1.color_id = item.color_id; deliveryDetails1.unit_id = ooo.unit_id; deliveryDetails1.unit_price = item.price; deliveryDetails1.delivered_quantity = item.quantity; if (item.is_gift == true) { deliveryDetails1.is_gift = true; deliveryDetails1.gift_type = "Promotion"; } else { deliveryDetails1.is_gift = false; deliveryDetails1.gift_type = ""; } deliveryDetails1.requisition_quantity = item.quantity; deliveryDetails1.line_total = item.line_total; deliveryDetails1.product_version_id = item.product_version_id; deliveryDetails1.party_id = onlineRequisitionModel.RequisitionMaster.party_id; deliveryDetails1.is_live_dummy = false; _entities.delivery_details.Add(deliveryDetails1); int saved = _entities.SaveChanges(); if (saved > 0) { // update inventory InventoryRepository updateInventoty = new InventoryRepository(); var masterDelivery = _entities.delivery_master.Find(deliveryMasterId); //'39' virtual in-transit warehouse----------------------------- updateInventoty.UpdateInventory("DELIVERY", masterDelivery.delivery_no, masterDelivery.from_warehouse_id ?? 0, masterDelivery.to_warehouse_id ?? 0, item.product_id ?? 0, item.color_id ?? 0, item.product_version_id ?? 0, ooo.unit_id ?? 0, item.quantity ?? 0, onlineRequisitionModel.RequisitionMaster.created_by ?? 0); } } foreach (var item in serialNumber) { 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 = ToWarehouse.warehouse_id; receiveSerial.party_id = onlineRequisitionModel.RequisitionMaster.party_id; receiveSerial.deliver_date = DateTime.Now; receiveSerial.requisition_id = RequisitionMasterId; receiveSerial.deliver_master_id = deliveryMasterId; receiveSerial.is_gift = item.is_gift; receiveSerial.is_live_dummy = false; _entities.SaveChanges(); } } return(deliveryMasterId); } catch (Exception) { throw; } }