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(); }
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; }
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)); } }
private bool CanExecuteGiveOutMaterialToClaimCommand(RemainMaterial material) { return(Claim != null && Claim.RN != 0 && (Claim.STATE == UDOSightSTATE.Confirmed || Claim.STATE == UDOSightSTATE.Confirmed) && material != null); }
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 }); } }); }
private bool CanExecuteTakeMaterialToClaimCommand(RemainMaterial matinfo) { //выбирать материал можно столи при начальном состоянии заявки return(matinfo != null && matinfo.RN != 0 && Claim != null && Claim.RN == 0 && Claim.STATE == 0); }