public HttpResponseMessage CreateMrr([FromBody] MrrModel objMrrModel) { try { if (string.IsNullOrEmpty(objMrrModel.MrrMasterData.grn_master_id.ToString())) { var formatter = RequestFormat.JsonFormaterString(); return(Request.CreateResponse(HttpStatusCode.OK, new Confirmation { output = "error", msg = "Please Select Grn Master No !!" }, formatter)); } else { mrrRepository.CreateMrr(objMrrModel); var formatter = RequestFormat.JsonFormaterString(); return(Request.CreateResponse(HttpStatusCode.OK, new Confirmation { output = "success", msg = "MRR save successfully" }, formatter)); } } catch (Exception ex) { var formatter = RequestFormat.JsonFormaterString(); return(Request.CreateResponse(HttpStatusCode.OK, new Confirmation { output = "error", msg = "Sorry Mrr Failed!" }, formatter)); } }
public object GetGrnByGrnMasterId(long grnMasterId) { try { var mrrModel = new MrrModel(); mrrModel.GrnMasterData = _entities.grn_master.Find(grnMasterId); mrrModel.GrnDetailsList = _entities.grn_details .Join(_entities.products, jp => jp.product_id, p => p.product_id, (jp, p) => new { jp, p }) .Join(_entities.brands, jb => jb.jp.brand_id, b => b.brand_id, (jb, b) => new { jb, b }) .GroupJoin(_entities.colors, jc => jc.jb.jp.color_id, c => c.color_id, (jc, c) => new { jc, nc = c.FirstOrDefault() }) .Join(_entities.units, ju => ju.jc.jb.jp.unit_id, u => u.unit_id, (ju, u) => new { ju, u }) .GroupJoin(_entities.product_version, jpv => jpv.ju.jc.jb.jp.product_version_id, pv => pv.product_version_id, (jpv, pv) => new { jpv, vc = pv.FirstOrDefault() }) .Join(_entities.grn_master, jgrn => jgrn.jpv.ju.jc.jb.jp.grn_master_id, grn => grn.grn_master_id, (jgrn, grn) => new { jgrn, grn }) .Where(k => k.jgrn.jpv.ju.jc.jb.jp.grn_master_id == grnMasterId) //.Where(k => k.jgrn.jpv.ju.jc.jb.jp.grn_master_id == grnMasterId && k.jgrn.jpv.ju.jc.jb.p.has_serial == true) .Select(i => new GrnDetailsModel { grn_details_id = i.jgrn.jpv.ju.jc.jb.jp.grn_details_id, product_id = i.jgrn.jpv.ju.jc.jb.jp.product_id, product_name = i.jgrn.jpv.ju.jc.jb.p.product_name, has_serial = (bool)i.jgrn.jpv.ju.jc.jb.p.has_serial, brand_id = i.jgrn.jpv.ju.jc.jb.jp.brand_id, brand_name = i.jgrn.jpv.ju.jc.b.brand_name, color_id = i.jgrn.jpv.ju.nc.color_id, color_name = string.IsNullOrEmpty(i.jgrn.jpv.ju.nc.color_name) ? "" : i.jgrn.jpv.ju.nc.color_name, receive_quantity = i.jgrn.jpv.ju.jc.jb.jp.receive_quantity, pi_quantity = i.jgrn.jpv.ju.jc.jb.jp.pi_quantity, product_version_id = i.jgrn.vc.product_version_id, product_version_name = string.IsNullOrEmpty(i.jgrn.vc.product_version_name) ? "" : i.jgrn.vc.product_version_name, unit_price = i.jgrn.jpv.ju.jc.jb.jp.unit_price, line_total = i.jgrn.jpv.ju.jc.jb.jp.line_total, grn_master_id = i.jgrn.jpv.ju.jc.jb.jp.grn_master_id, unit_id = i.jgrn.jpv.u.unit_id, unit_name = i.jgrn.jpv.u.unit_name, vat_pcnt = i.jgrn.jpv.ju.jc.jb.jp.vat_pcnt, tax_pcnt = i.jgrn.jpv.ju.jc.jb.jp.tax_pcnt, vat_amount = i.jgrn.jpv.ju.jc.jb.jp.vat_amount, tax_amount = i.jgrn.jpv.ju.jc.jb.jp.tax_amount, amount = i.jgrn.jpv.ju.jc.jb.jp.amount, company_id = i.grn.company_id ?? 0 }).OrderByDescending(p => p.grn_details_id).ToList(); return(mrrModel); } catch (Exception ex) { return(ex); } }
public long CreateMrr(MrrModel objMrrModel) { try { var mrrMaster = objMrrModel.MrrMasterData; var mrrDetailsList = objMrrModel.MrrDetailsList; var fromWarehouseId = mrrMaster.from_warehouse_id; long saleableWarehouseId = 1; long mrrSerial = _entities.mrr_master.Max(mr => (long?)mr.mrr_master_id) ?? 0; mrrSerial++; var mrrStr = mrrSerial.ToString(CultureInfo.InvariantCulture).PadLeft(7, '0'); //Insert Mrr Master Table string mrrNo = "MRR-" + mrrStr; mrrMaster.mrr_no = mrrNo; mrrMaster.grn_master_id = objMrrModel.MrrMasterData.grn_master_id; mrrMaster.lost_comment = objMrrModel.MrrMasterData.lost_comment; mrrMaster.created_by = objMrrModel.MrrMasterData.created_by; mrrMaster.created_date = DateTime.Now; _entities.mrr_master.Add(mrrMaster); _entities.SaveChanges(); long mrrMasterId = mrrMaster.mrr_master_id; // at first updating all imeis a saleable //var receiveSerialNoDetails = // _entities.receive_serial_no_details.Where(m => m.grn_master_id == mrrMaster.grn_master_id).ToList(); //foreach (var serialObj in receiveSerialNoDetails) //{ // serialObj.received_warehouse_id = saleableWarehouseId; // serialObj.current_warehouse_id = saleableWarehouseId; // serialObj.mrr_status = true; // serialObj.mrr_saleable = true; // serialObj.mrr_box_damage = false; // serialObj.mrr_physical_damage = false; // serialObj.customs_lost = false; // _entities.SaveChanges(); //} int updatingReceiveSerials = _entities.Database.ExecuteSqlCommand("UPDATE receive_serial_no_details SET mrr_status=1 , mrr_saleable=1,mrr_box_damage=0 ,mrr_physical_damage=0,customs_lost=0, received_warehouse_id='" + saleableWarehouseId + "', current_warehouse_id='" + saleableWarehouseId + "' WHERE grn_master_id='" + mrrMaster.grn_master_id + "'"); _entities.SaveChanges(); // Insert Mrr Details Table with damaged/lost products foreach (var item in mrrDetailsList) { var mrrDetail = new mrr_details { mrr_master_id = mrrMasterId, product_id = item.product_id, color_id = item.color_id, product_version_id = item.product_version_id, grn_quantity = item.grn_quantity, saleable_quantity = item.saleable_quantity, physical_damaged_quantity = item.physical_damaged_quantity, box_damage_quantity = item.box_damage_quantity, customs_lost_quantity = item.customs_lost_quantity, total_received_quantity = item.total_received_quantity }; _entities.mrr_details.Add(mrrDetail); int save = _entities.SaveChanges(); //updateInventoty.UpdateInventory() if (save > 0) { var updateInventoty = new InventoryRepository(); if (item.saleable_quantity > 0) { updateInventoty.UpdateInventory("MRR-Saleable", mrrMaster.mrr_no, fromWarehouseId ?? 0, saleableWarehouseId, item.product_id ?? 0, item.color_id ?? 0, item.product_version_id ?? 0, 1, item.saleable_quantity ?? 0, mrrMaster.created_by ?? 0); } if (item.physical_damaged_quantity > 0) { var physicalwarehouseId = _entities.warehouses.SingleOrDefault(w => w.warehouse_name == "Physical Damage Warehouse") .warehouse_id; updateInventoty.UpdateInventory("MRR-Physical Damage", mrrMaster.mrr_no, fromWarehouseId ?? 0, physicalwarehouseId, item.product_id ?? 0, item.color_id ?? 0, item.product_version_id ?? 0, 1, item.physical_damaged_quantity ?? 0, mrrMaster.created_by ?? 0); } if (item.box_damage_quantity > 0) { var boxDamagewarehouseId = _entities.warehouses.SingleOrDefault(w => w.warehouse_name == "Box Damage Warehouse") .warehouse_id; updateInventoty.UpdateInventory("MRR-Box Damage", mrrMaster.mrr_no, fromWarehouseId ?? 0, boxDamagewarehouseId, item.product_id ?? 0, item.color_id ?? 0, item.product_version_id ?? 0, 1, item.box_damage_quantity ?? 0, mrrMaster.created_by ?? 0); } if (item.customs_lost_quantity > 0) { var customLostwarehouseId = _entities.warehouses.SingleOrDefault(w => w.warehouse_name == "Customs Lost") .warehouse_id; updateInventoty.UpdateInventory("MRR-Customs Lost", mrrMaster.mrr_no, fromWarehouseId ?? 0, customLostwarehouseId, item.product_id ?? 0, item.color_id ?? 0, item.product_version_id ?? 0, 1, item.customs_lost_quantity ?? 0, mrrMaster.created_by ?? 0); } } } //Update Receive Serial No Details var receiveSerialDetails = objMrrModel.ReceiveSerialNoDetails; foreach (var item in receiveSerialDetails) { var receiveSerialNo = _entities.receive_serial_no_details.SingleOrDefault(mrr => mrr.receive_serial_no_details_id == item.receive_serial_no_details_id); if (item.damage_type_name == "Box Damage") { var singleOrDefault = _entities.warehouses.SingleOrDefault(w => w.warehouse_name == "Box Damage Warehouse"); if (singleOrDefault != null) { var warehouseId = singleOrDefault .warehouse_id; receiveSerialNo.mrr_box_damage = true; receiveSerialNo.mrr_status = true; receiveSerialNo.mrr_saleable = false; receiveSerialNo.current_warehouse_id = warehouseId; _entities.SaveChanges(); } } if (item.damage_type_name == "Physical Damage") { var warehouseId = _entities.warehouses.SingleOrDefault(w => w.warehouse_name == "Physical Damage Warehouse") .warehouse_id; receiveSerialNo.mrr_physical_damage = true; receiveSerialNo.mrr_status = true; receiveSerialNo.mrr_saleable = false; receiveSerialNo.current_warehouse_id = warehouseId; _entities.SaveChanges(); } if (item.damage_type_name == "Customs Lost") { var warehouseId = _entities.warehouses.SingleOrDefault(w => w.warehouse_name == "Customs Lost") .warehouse_id; receiveSerialNo.customs_lost = true; receiveSerialNo.mrr_status = true; receiveSerialNo.mrr_saleable = false; receiveSerialNo.current_warehouse_id = warehouseId; _entities.SaveChanges(); } } //Update Mrr Status in Grn Master var mrrStatus = _entities.grn_master.Find(mrrMaster.grn_master_id); mrrStatus.mrr_status = true; //Get Mail Data int counter = 0; var rEmail = ""; var dataSmtp = _entities.notifier_mail_account.FirstOrDefault(s => s.is_active == true); var dataReceiver = (from mrs in _entities.mail_receiver_setting join spm in _entities.software_process_module on mrs.process_code_id equals spm.process_code_id select new { mail_receiver_setting_id = mrs.mail_receiver_setting_id, process_code_name = spm.process_code_name, process_code_id = spm.process_code_id, receiver_name = mrs.receiver_name, receiver_email = mrs.receiver_email, is_active = mrs.is_active, is_deleted = mrs.is_deleted, created_by = mrs.created_by, created_date = mrs.created_date, updated_by = mrs.updated_by, updated_date = mrs.updated_date }).Where(c => c.is_deleted != true && c.process_code_name == "MRR").OrderByDescending(c => c.mail_receiver_setting_id).ToList(); var dataProcess = (from mrs in _entities.process_wise_mail_setting join spm in _entities.software_process_module on mrs.process_code_id equals spm.process_code_id select new { process_wise_mail_setting_id = mrs.process_wise_mail_setting_id, process_code_name = spm.process_code_name, process_code_id = spm.process_code_id, email_body = mrs.email_body, email_subject = mrs.email_subject, is_active = mrs.is_active, is_deleted = mrs.is_deleted, created_by = mrs.created_by, created_date = mrs.created_date, updated_by = mrs.updated_by, updated_date = mrs.updated_date }).FirstOrDefault(c => c.is_deleted != true && c.process_code_name == "MRR"); //get current Mrr information------------------------ var mrrInformation = this.GetMrrInformationById(mrrMasterId); StringBuilder sb = new StringBuilder(); sb.Append("<h4 style='color: red'>" + dataProcess.email_body + "</h4>"); sb.Append("<table>"); sb.Append("<tr>"); sb.Append("<td><b>MRR No</b></td>"); sb.Append("<td><b>: <span style='color: red'>" + mrrInformation[0].mrr_no + "</span></b></td>"); sb.Append("</tr>"); sb.Append("<tr>"); sb.Append("<td><b>GRN No</b></td>"); sb.Append("<td><b>: " + mrrInformation[0].grn_no + "</b></td>"); sb.Append("</tr>"); sb.Append("<tr>"); sb.Append("<td><b>MRR Date</b></td>"); sb.Append("<td><b>: " + mrrInformation[0].created_date + "</b></td>"); sb.Append("</tr>"); sb.Append("<tr>"); sb.Append("<td><b>Created By</b></td>"); sb.Append("<td><b>: " + mrrInformation[0].created_by + "</b></td>"); sb.Append("</tr>"); sb.Append("</table>"); sb.Append("<br/>"); sb.Append("<table border='1px' cellpadding='7'>"); sb.Append("<tr>"); sb.Append("<th>Product Name</th>"); sb.Append("<th>Color</th>"); sb.Append("<th>Version</th>"); sb.Append("<th>GRN Qty</th>"); sb.Append("<th>Saleable</th>"); sb.Append("<th>Custom Lost</th>"); sb.Append("<th>Box Damage</th>"); sb.Append("<th>Physical Damage</th>"); sb.Append("<th>Total Received</th>"); sb.Append("</tr>"); foreach (var item in mrrInformation) { sb.Append("<tr align='center'>"); sb.Append("<td>" + item.product_name + "</td>"); sb.Append("<td>" + item.color_name + "</td>"); sb.Append("<td>" + item.product_version_name + "</td>"); sb.Append("<td>" + item.grn_quantity + "</td>"); sb.Append("<td>" + item.saleable_quantity + "</td>"); sb.Append("<td>" + item.customs_lost_quantity + "</td>"); sb.Append("<td>" + item.box_damage_quantity + "</td>"); sb.Append("<td>" + item.physical_damaged_quantity + "</td>"); sb.Append("<td>" + item.total_received_quantity + "</td>"); sb.Append("</tr>"); } sb.Append("</table>"); string mrrNumberEmailBody = sb.ToString(); foreach (var item in dataReceiver) { if (counter == 0) { rEmail = item.receiver_email; } rEmail += "," + item.receiver_email; counter++; } //Send Confirmation Mail mailRepository.SendMail(dataSmtp.account_email, rEmail, dataProcess.email_subject, mrrNumberEmailBody, dataSmtp.account_email, dataSmtp.accoutn_password, ""); _entities.SaveChanges(); return(1); } catch (Exception) { return(0); } }