Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
 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,
     });
 }
Exemplo n.º 3
0
        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;
            }
        }
Exemplo n.º 4
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);
        }