コード例 #1
0
ファイル: MarkerOperations.cs プロジェクト: Osama91/CCWFM
        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);
            }
        }
コード例 #2
0
ファイル: MarkerMapper.cs プロジェクト: Osama91/CCWFM
        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,
            });
        }
コード例 #3
0
ファイル: MarkerOperations.cs プロジェクト: Osama91/CCWFM
        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;
            }
        }