Beispiel #1
0
        private void ExecuteTakeMaterialToClaimCommand(RemainMaterial matinfo)
        {
            //обозначим материал
            ((DepartmentOrderSpecifacation)Claim.DepartmentOrder.DepartmentOrderSpecifacation[0]).NomenclatureNumber =
                matinfo.Parent.NOMMODIF.NomenclatureNumber;
            ((DepartmentOrderSpecifacation)Claim.DepartmentOrder.DepartmentOrderSpecifacation[0]).NOMMODIF =
                matinfo.Parent.NOMMODIF;
            ((DepartmentOrderSpecifacation)Claim.DepartmentOrder.DepartmentOrderSpecifacation[0]).DICMUNT =
                matinfo.Parent.NOMMODIF.NomenclatureNumber.DICMUNT_UMEAS_MAIN;
            var gs = new GOODSSUPPLY();

            foreach (GOODSSUPPLY item in matinfo.Parent.GOODSSUPPLIES)
            {
                if (item.RN == matinfo.RN)
                {
                    gs = item;
                    break;
                }
            }

            ((DepartmentOrderSpecifacation)Claim.DepartmentOrder.DepartmentOrderSpecifacation[0])
            .StoreGasStationOilDepot = gs.StoreGasStationOilDepot;

            Claim.DepartmentOrder.StoreGasStationOilDepot = gs.StoreGasStationOilDepot;

            FillClaimByNnCommand.Execute();
        }
Beispiel #2
0
        private void TakeMaterials(RemainMaterial arg)
        {
            //посылаем сообщение загрузить заявки по номенклатурному номеру
            var x = arg.SNOMEN;

            _eventAggregator.GetEvent <FindUDOSightEvent>().Publish(new FUDOSight {
                DepartmentOrder = new FDepartmentOrder {
                    ORDSTATE = ParusModel.DepartmentOrder.DepartmentOrderState.All, DepartmentOrderSpecifacations = new FDepartmentOrderSpecifacation {
                        NomenclatureNumber = new FNomenclatureNumber {
                            NOMENCODE = x
                        }
                    }
                }, AgnlistTOV = new FAgnlist {
                    RN = new List <long>()
                }, STATE = new List <UDOSightSTATE>(), RN = new List <long?>()
            });

            //получим потребность
            //загружаем страницу и вырезаем нужное
            var browserData = GetReguirementOfMaterials(arg);

            //преобразуем в массив байт
            byte[] stream = new UTF8Encoding().GetBytes(browserData);
            _sight.WANTDATECREATE = stream;
            HtmlBody = _sight.WANTDATECREATE;
        }
Beispiel #3
0
        private static string GetReguirementOfMaterials(RemainMaterial arg)
        {
            var    ffile = string.Format("http://kts.vz/MAT_POTR_WEB/wfm_Def_Mat.aspx?nn={0}", arg.SNOMEN);
            string dfile;
            int    start, end;
            var    client = new WebClient();

            using (client)
            {
                try
                {
                    client.UseDefaultCredentials = true;
                    dfile = client.DownloadString(ffile);
                    dfile = dfile.Replace("VBScript", " ");
                    start = dfile.IndexOf("id=\"DG_Mat\"", StringComparison.Ordinal);
                    start = dfile.IndexOf(">", start, StringComparison.Ordinal);
                    end   = dfile.IndexOf("id=\"Label4\"", StringComparison.Ordinal);
                    end   = dfile.IndexOf(">", end, StringComparison.Ordinal);
                    start++;
                    end++;
                }
                catch
                {
                    return
                        (string.Format(
                             @"<head><meta http-equiv='Content-Language' content='ru-RU'><meta http-equiv='Content-Type' content='text/html;charset=UTF-8'></head><div style='font-size: 10px;'><table><tr><td>{0}</td></tr></table></div>",
                             "Нет данных либо потребности в материалах нет. Проверьте правильность введенных данных."));
                }
                Encoding ascii = Encoding.Default;
                Encoding utf8  = Encoding.UTF8;
                byte[]   one   = ascii.GetBytes(dfile.Substring(start, end - start));
                string   two   = utf8.GetString(one);
                return
                    (string.Format(
                         @"<head><meta http-equiv='Content-Language' content='ru-RU'><meta http-equiv='Content-Type' content='text/html;charset=UTF-8'></head><div style='font-size: 10px;'><table><tr><td>{0}</td></tr></table></div>",
                         two));
            }
        }
Beispiel #4
0
 private bool CanExecuteGiveOutMaterialToClaimCommand(RemainMaterial material)
 {
     return(Claim != null && Claim.RN != 0 &&
            (Claim.STATE == UDOSightSTATE.Confirmed || Claim.STATE == UDOSightSTATE.Confirmed) &&
            material != null);
 }
Beispiel #5
0
        private void ExecuteGiveOutMaterialToClaimCommand(RemainMaterial remainMaterial)
        {
            if (Claim.ALLOWQUANT < (Claim.ISSUEDQUANT + remainMaterial.Gift))
            {
                if (MessageBox.Show(
                        "Внимание итоговое количество выданного материала (" +
                        (Claim.ISSUEDQUANT + remainMaterial.Gift).ToString(CultureInfo.InvariantCulture) + "" +
                        ((DepartmentOrderSpecifacation)Claim.DepartmentOrder.DepartmentOrderSpecifacation[0])
                        .NomenclatureNumber.DICMUNT_UMEAS_MAIN.MEASMNEMO + ") превышает количество завизированного (" +
                        Claim.ALLOWQUANT + "" +
                        ((DepartmentOrderSpecifacation)Claim.DepartmentOrder.DepartmentOrderSpecifacation[0])
                        .NomenclatureNumber.DICMUNT_UMEAS_MAIN.MEASMNEMO +
                        ")." + Environment.NewLine + "Продолжить?", "ВНИМАНИЕ", MessageBoxButton.YesNo,
                        MessageBoxImage.Warning) == MessageBoxResult.No)
                {
                    return;
                }
            }

            GOODSPARTY goodsparty = remainMaterial.Parent;
            var        goodssuply = new GOODSSUPPLY();

            foreach (
                GOODSSUPPLY g in
                from object item in goodsparty.GOODSSUPPLIES
                select item as GOODSSUPPLY
                into g
                where g.RN == remainMaterial.RN
                select g)
            {
                goodssuply = g;
            }

            var tranceindept = new InvoiceForTransmissionInUnit
            {
                StoreGasStationOilDepot_STORE     = goodssuply.StoreGasStationOilDepot,
                InvoiceForTransmissionInUnitSPECs = new List <InvoiceForTransmissionInUnitSPEC>
                {
                    new InvoiceForTransmissionInUnitSPEC
                    {
                        GOODSPARTY = goodsparty,
                        QUANT      = remainMaterial.Gift,
                        NOMMODIF   = goodsparty.NOMMODIF
                    }
                },
                FACEACC = new FACEACC {
                    NUMB = remainMaterial.FACEACCENUMBER
                },
                KindOfWarehouseOperations_STOPER =
                    new KindOfWarehouseOperations {
                    GSMWAYSMNEMO = remainMaterial.OperationNumber
                }
            };

            IsBusy = true;
            Observable.ToAsync(() => tranceindept = _visingCore.SaveTran(tranceindept, Claim)
                               )()
            .ObserveOnDispatcher()
            .Subscribe(x =>
            {
                IsBusy = false;
                if (tranceindept.RN != 0)
                {
                    Claim = _visingCore.RecalculationIssuedQuant(Claim);


                    if (TransInvDepListRNs.RNs == null)
                    {
                        TransInvDepListRNs.RNs = new ObservableCollection <long> {
                            tranceindept.RN
                        };
                    }

                    OnClaimChanged(new ClaimChangedMessage
                    {
                        Action  = ClaimChangedMessage.GiveOutMaterial,
                        Caption = "Выдача материала",
                        Claim   = Claim,
                        Message = "Расходная накладная №" + tranceindept.PREF + "-" + tranceindept.NUMB
                    });
                }
            });
        }
Beispiel #6
0
 private bool CanExecuteTakeMaterialToClaimCommand(RemainMaterial matinfo)
 {
     //выбирать материал можно столи при начальном состоянии заявки
     return(matinfo != null && matinfo.RN != 0 && Claim != null && Claim.RN == 0 && Claim.STATE == 0);
 }