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