private Tbl_Wf_CuttingOrder DeleteCuttingOrder(Tbl_Wf_CuttingOrder order) { using (var entities = new WorkFlowManagerDBEntities()) { var cuttingOrderQuery = (from c in entities.Tbl_Wf_CuttingOrder.Include("tbl_MarkerDetail.TblColor") where c.MarkerIserial == order.MarkerIserial && c.InspectionIserial == order.InspectionIserial select c).FirstOrDefault(); if (cuttingOrderQuery != null) { //var inspection = // entities.Tbl_fabricInspectionDetail.FirstOrDefault(x => x.Iserial == order.InspectionIserial); //if (inspection != null) //{ // inspection.RemainingMarkerRollQty = (float)(inspection.RemainingMarkerRollQty + // cuttingOrderQuery.RollAssignedQty); //} var reservationLines = entities.Tbl_ReservationRec.Include("Tbl_ReservationDetails1").FirstOrDefault(x => x.Tbl_FabricInspectionDetails == order.InspectionIserial && x.Tbl_ReservationDetails1.SalesOrder == cuttingOrderQuery.tbl_MarkerDetail.SalesOrder && x.Tbl_ReservationDetails1.SalesOrderColor == cuttingOrderQuery.tbl_MarkerDetail.TblColor.Code); if (reservationLines != null) { entities.DeleteObject(reservationLines); } entities.DeleteObject(cuttingOrderQuery); entities.SaveChanges(); return(order); } } return(null); }
public static CuttingOrderViewModel MapToCuttingOrder(Tbl_Wf_CuttingOrder order) { return(new CuttingOrderViewModel { MarkerHeaderIserial = order.MarkerHeaderTransaction, InspectionIserial = order.InspectionIserial, unit = order.RollUnit, RollUnit = order.RollUnit, MarkerIserial = order.MarkerIserial, RollAssignedQty = order.RollAssignedQty, CuttingSelection = order.CuttingSelection, }); }
private void CalcMarker(tbl_MarkerTransactionHeader markerheader, tbl_MarkerDetail row, WorkFlowManagerDBEntities entities, out int status) { var noOfLayers = entities.TblMarkerTemps.FirstOrDefault( x => x.MarkerNo == row.MarkerNo && x.MarkerTransactionHeader == row.MarkerTransactionHeader && x.TblColor == row.StyleColorCode).NoOfLayers; var totalReqFabric = noOfLayers * row.MarkerL; var inspections = entities.Inspections.Where(x => x.markerIserial == row.Iserial).ToList(); var totalAvaFabric = inspections.Sum(x => x.RemainingMarkerRollQty); if (inspections.FirstOrDefault().Unit == "Kgg") { totalAvaFabric = (float)inspections.Sum(x => x.qtyPerKilo); } row.Status = 0; if (totalReqFabric <= totalAvaFabric) { row.Status = 1; status = 1; var listOfInspections = inspections.Where(w => totalReqFabric < w.RemainingMarkerRollQty); Inspection choosedRoll; if (listOfInspections.Any()) { choosedRoll = listOfInspections.OrderBy(x => x.RemainingMarkerRollQty).FirstOrDefault(); double rollassigned = 0; switch (markerheader.TblMarkerType) { case 0: if (inspections.FirstOrDefault().Unit == "Kgg") { rollassigned = (double)(totalReqFabric * (choosedRoll.RollWMT * (choosedRoll.M2WeightGm / 100))); } else { rollassigned = (double)totalReqFabric; } break; case 1: rollassigned = choosedRoll.RemainingMarkerRollQty; break; } var cuttingRow = new Tbl_Wf_CuttingOrder { MarkerHeaderTransaction = row.MarkerTransactionHeader, InspectionIserial = choosedRoll.Iserial, RollUnit = choosedRoll.Unit, MarkerIserial = choosedRoll.markerIserial, RollAssignedQty = rollassigned, CuttingSelection = "C", Barcode = choosedRoll.RollBatch, TblMarkerType = 0, }; SavingCuttingOrder(cuttingRow); } else { var listOfMarkerList = new List <Inspection>(); var remaining = totalReqFabric; foreach (var variable in inspections.OrderByDescending(x => x.RemainingMarkerRollQty)) { if (remaining > 0) { var remlist = inspections.Where(x => listOfMarkerList.Any(s => s.RollBatch != x.RollBatch)); var templist = remlist.Where(x => remaining < x.RemainingMarkerRollQty); if (inspections.FirstOrDefault().Unit == "Kgg") { //templist = //inspections // .Where(x => !listOfMarkerList.Contains(x) && remaining < x.qtyPerKilo); } if (templist.Any()) { choosedRoll = templist.OrderBy(x => x.RemainingMarkerRollQty).FirstOrDefault(); if (inspections.FirstOrDefault().Unit == "Kgg") { choosedRoll = templist.OrderBy(x => x.qtyPerKilo).FirstOrDefault(); } } else { choosedRoll = variable; } listOfMarkerList.Add(choosedRoll); double rollassigned = 0; switch (markerheader.TblMarkerType) { case 0: if (templist.Any()) { rollassigned = (double)remaining; if (inspections.FirstOrDefault().Unit == "Kgg") { rollassigned = (double)(rollassigned * (choosedRoll.RollWMT * (choosedRoll.M2WeightGm / 100))); } } else { rollassigned = choosedRoll.RemainingMarkerRollQty; } break; case 1: rollassigned = choosedRoll.RemainingMarkerRollQty; break; } remaining = remaining - rollassigned; var cuttingRow = new Tbl_Wf_CuttingOrder { MarkerHeaderTransaction = row.MarkerTransactionHeader, InspectionIserial = choosedRoll.Iserial, RollUnit = choosedRoll.Unit, MarkerIserial = choosedRoll.markerIserial, RollAssignedQty = rollassigned, CuttingSelection = "C", Barcode = choosedRoll.RollBatch, TblMarkerType = 0, }; SavingCuttingOrder(cuttingRow); } else { break; } } } } else { status = 0; } }
private Tbl_Wf_CuttingOrder SavingCuttingOrder(Tbl_Wf_CuttingOrder order) { using (var entities = new WorkFlowManagerDBEntities()) { var cuttingOrderQuery = (from c in entities.Tbl_Wf_CuttingOrder where c.MarkerHeaderTransaction == order.MarkerHeaderTransaction && c.MarkerIserial == order.MarkerIserial && c.InspectionIserial == order.InspectionIserial select c).SingleOrDefault(); var inspectionLine = entities.Tbl_fabricInspectionDetail.SingleOrDefault(x => x.Iserial == order.InspectionIserial); var reservationLines = entities.Tbl_ReservationRec.Include("Tbl_ReservationDetails1").Where(x => x.Tbl_FabricInspectionDetails == order.InspectionIserial); float rem = 0; if (cuttingOrderQuery != null) { if (inspectionLine != null) { rem = inspectionLine.RemainingMarkerRollQty - Convert.ToSingle(order.RollAssignedQty) + Convert.ToSingle(cuttingOrderQuery.RollAssignedQty); inspectionLine.RemainingMarkerRollQty = rem; if (rem < 0) { return(cuttingOrderQuery); } } inspectionLine.RemainingMarkerRollQty = (float)(rem + order.RollAssignedQty); entities.DeleteObject(cuttingOrderQuery); entities.SaveChanges(); } if (inspectionLine != null) { rem = inspectionLine.RemainingMarkerRollQty - Convert.ToSingle(order.RollAssignedQty); inspectionLine.RemainingMarkerRollQty = rem; entities.Tbl_Wf_CuttingOrder.AddObject(order); var marker = entities.tbl_MarkerDetail.Include("TblColor").Include("TblColor1").FirstOrDefault(w => w.Iserial == order.MarkerIserial); var inspectionLineRow = entities.FabricInspectionPurchaseOrders.SingleOrDefault(x => x.Iserial == order.InspectionIserial); var reservationDetail = entities.Tbl_ReservationDetails.FirstOrDefault(w => w.SalesOrder == marker.SalesOrder && w.SalesOrderColor == marker.TblColor.Code && inspectionLine.Fabric_Code == w.Tbl_ReservationMainDetails1.Fabric && w.Tbl_ReservationMainDetails1.FabricColor == inspectionLine.ColorCode); if (!reservationLines.Any()) { if (reservationDetail != null) { if (inspectionLineRow != null) { var newrow = new Tbl_ReservationRec { Site = inspectionLine.FinishedSite, Item = inspectionLine.Fabric_Code, ItemColor = inspectionLine.ColorCode, RollNo = inspectionLine.RollNo, BatchNo = inspectionLineRow.BARCODE, Location = inspectionLine.FinishedWarehouse, Warehouse = inspectionLine.FinishedWarehouse, Qty = (float)order.RollAssignedQty, Tbl_FabricInspectionDetails = inspectionLine.Iserial, Tbl_ReservationDetails = reservationDetail.Iserial }; entities.Tbl_ReservationRec.AddObject(newrow); } } } else { //foreach (var resLine in reservationLines) // if (resLine.Tbl_ReservationDetails1.Markered != true) // { // var rowtodelete = // entities.Tbl_ReservationDetails.FirstOrDefault( // x => x.Iserial == resLine.Tbl_ReservationDetails1.Iserial); // entities.Tbl_ReservationDetails.DeleteObject(rowtodelete); // } } entities.SaveChanges(); foreach (var resLine in reservationLines) { if (marker != null && (resLine.Tbl_ReservationDetails1.SalesOrder == marker.SalesOrder && resLine.Tbl_ReservationDetails1.SalesOrderColor == marker.TblColor.Code)) { resLine.Qty = (float)order.RollAssignedQty; resLine.Tbl_ReservationDetails1.Markered = true; } } } entities.SaveChanges(); } return(order); }