private tbl_MarkerTransactionHeader SaveTransactionHeader(tbl_MarkerTransactionHeader markerHeaderHeader) { using (var entities = new WorkFlowManagerDBEntities()) { if (markerHeaderHeader.Iserial == 0) { entities.tbl_MarkerTransactionHeader.AddObject(markerHeaderHeader); } else { var transactionHeaderQuery = (from h in entities.tbl_MarkerTransactionHeader where h.Iserial == markerHeaderHeader.Iserial select h).SingleOrDefault(); if (transactionHeaderQuery != null) { GenericUpdate(transactionHeaderQuery, markerHeaderHeader, entities); } foreach (var variable in markerHeaderHeader.tbl_MarkerDetail.ToList()) { var markerDetail = (from h in entities.tbl_MarkerDetail where h.Iserial == variable.Iserial select h).SingleOrDefault(); if (markerDetail != null) { GenericUpdate(markerDetail, variable, entities); foreach (var variableDetail in variable.tbl_MarkerDetailMeterPerSize.ToList()) { var tblMarkerDetailMeterPerSize = (from h in entities.tbl_MarkerDetailMeterPerSize where h.Iserial == variableDetail.Iserial && h.MeterPerSizeCode == variableDetail.MeterPerSizeCode select h).SingleOrDefault(); if (tblMarkerDetailMeterPerSize != null) { GenericUpdate(tblMarkerDetailMeterPerSize, variableDetail, entities); } else { variableDetail.Iserial = variable.Iserial; variableDetail.tbl_MarkerDetail = null; entities.tbl_MarkerDetailMeterPerSize.AddObject(variableDetail); } } } else { variable.MarkerTransactionHeader = markerHeaderHeader.Iserial; variable.tbl_MarkerTransactionHeader = null; entities.tbl_MarkerDetail.AddObject(variable); } } } entities.SaveChanges(); return(markerHeaderHeader); } }
public static MarkerHeaderListViewModel MapToViewModel(tbl_MarkerTransactionHeader markerObject, ObservableCollection <RouteCardService.TblRouteGroup> @group) { if (markerObject.Status == null) { markerObject.Status = 0; } var newRouteGroupitem = new RouteCardService.TblRouteGroup(); if (markerObject.TblRouteGroup != null) { newRouteGroupitem.InjectFrom(markerObject.TblRouteGroup); } var newRouteitem = new RouteCardService.TblRoute(); if (markerObject.TblRoute != null) { newRouteitem.InjectFrom(markerObject.TblRoute); } return(new MarkerHeaderListViewModel { Iserial = markerObject.Iserial, RoutGroupID = markerObject.Operation, RoutID = markerObject.Workstation, RoutGroupItem = newRouteGroupitem, RoutItem = newRouteitem, VendorCode = markerObject.Vendor, TransDate = markerObject.TransDate, WareHouses = markerObject.WareHouses, RouteGroups = @group, TblMarkerType = markerObject.TblMarkerType ?? 0, Status = (int)markerObject.Status, Posted = markerObject.Posted, }); }
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; } }