public override void AfterConstruction() { base.AfterConstruction(); Корректировка = Основание.ТипПодчиненности.ОСНОВНОЙ; ОснованиеДокумент документ = new ОснованиеДокумент(this.Session); Документы.Add(документ); ДействующийДокумент = документ; }
protected override void OnChanged(string propertyName, object oldValue, object newValue) { base.OnChanged(propertyName, oldValue, newValue); if (IsLoading) { return; } switch (propertyName) { case "НомерИсправления": if (НомерИсправления > Основание.ДействующийДокумент.НомерИсправления) { Основание.ДействующийДокумент = this; } break; case "Основание": if (Корректировка == Основание.ТипПодчиненности.КОРРЕКТИРОВОЧНЫЙ) { БазовыйДокумент = Основание.БазовоеОснование.ДействующийДокумент; } break; case "СуммаВсего": ОбновитьСтоимость(); break; case "СуммаАкциза": ОбновитьСтоимость(); break; case "СуммаНДС": ОбновитьСтоимость(); break; case "СуммаВсегоУвел": ОбновитьСтоимость(); break; case "СуммаАкцизаУвел": ОбновитьСтоимость(); break; case "СуммаНДСУвел": ОбновитьСтоимость(); break; } }
public void ЗаполнитьСтоимостьВсего() { if (ОснованиеСуммаВсего != 0 || Основание == null || Основание.ДействующийДокумент == null) { return; } ОснованиеДокумент doc = Основание.ДействующийДокумент; doc.ТребуетсяПроверка = true; doc.СуммаВсего = 0; doc.СуммаНДС = 0; foreach (var oper in Основание.Операции) { doc.СуммаВсего += oper.СуммаВсего; doc.СуммаНДС += oper.СуммаНДСБаза; } }
private void Import(IObjectSpace os, ОперацияКонтРучные конт, String file_name) { FixedFileEngine engine = new FixedFileEngine(typeof(OperationImport)); OperationImport[] imp_res = (OperationImport[])engine.ReadFile(file_name); os.Delete(конт.Операции); DateTime date = default(DateTime); foreach (OperationImport oper_imp in imp_res) { ОснованиеДокумент doc = null; if (oper_imp.SF_TYPE.Trim() != "СФЗ") { doc = os.FindObject <ОснованиеДокумент>(new BinaryOperator("РегНомер", oper_imp.SF_REGNUM.Trim()), true); } else { DateTime.TryParseExact(oper_imp.SF_DATE.Trim(), "yyyyMMdd", null, System.Globalization.DateTimeStyles.None, out date); Основание осн = os.FindObject <Основание>( new BinaryOperator("ИннПродавца", "5012039795") & new BinaryOperator("Номер", oper_imp.SF_NUMBER.Trim()) & new BinaryOperator("Дата", date, BinaryOperatorType.GreaterOrEqual) & new BinaryOperator("Дата", date.AddDays(1), BinaryOperatorType.Less), true); doc = осн != null ? осн.ДействующийДокумент : null; } Операция oper = os.CreateObject <Операция>(); конт.Операции.Add(oper); // Decimal summ_cost = Decimal.Parse(imp_rec.SUMM_COST.Trim().Replace('.', ',')); // DateTime.TryParseExact(imp_rec.SF_DATE.Trim(), "yyyyMMdd", null, System.Globalization.DateTimeStyles.None, out sfdoc_date); oper.ТипКниги = (Операция.ТипКнигиТип)Int32.Parse(oper_imp.BOOK.Trim()); oper.ТипДеятельности = (Операция.ТипДеятельностиТип)Int32.Parse(oper_imp.WORK_TYPE.Trim()); oper.ТипНапрОпер = (Операция.ТипНапрОперТип)Int32.Parse(oper_imp.DIR.Trim()); oper.ТипОперВнутр = (Операция.ТипОперВнутрТип)Int32.Parse(oper_imp.OPERATION.Trim()); String stavka = oper_imp.VAT_RATE.Trim(); if (String.IsNullOrEmpty(stavka) || stavka == "0") { stavka = "2"; } oper.Ставка = (СтавкаНДС)Int32.Parse(stavka); // oper_imp.VAT_MODE; oper.Проводка = oper_imp.BUH_PROV.Trim(); oper.СубсчетНДС = oper_imp.VAT_ACC.Trim(); DateTime.TryParseExact(oper_imp.BUH_DT.Trim(), "yyyyMMdd", null, System.Globalization.DateTimeStyles.None, out date); oper.ДатаБУ = date; DateTime.TryParseExact(oper_imp.VAT_DT.Trim(), "yyyyMMdd", null, System.Globalization.DateTimeStyles.None, out date); oper.ДатаНДС = date; oper.ОснованиеДокумент = doc; oper.КодПартнера = oper_imp.VO_CODE.Trim(); if (oper_imp.SF_TYPE.Trim() != "СФЗ") { oper.ОснованиеРегНомер = oper_imp.SF_REGNUM.Trim(); } else { oper.ОснованиеРегНомер = doc != null ? doc.егНомер : null; } oper.СФТип = oper_imp.SF_TYPE.Trim(); oper.СФТипОриг = oper_imp.SF_TYPE_ORIG.Trim(); oper.СФНомер = oper_imp.SF_NUMBER.Trim(); DateTime.TryParseExact(oper_imp.SF_DATE.Trim(), "yyyyMMdd", null, System.Globalization.DateTimeStyles.None, out date); oper.СФДата = date; oper.ПДТип = oper_imp.PD_TYPE.Trim(); oper.ПДНомер = oper_imp.PD_NUMBER.Trim(); DateTime.TryParseExact(oper_imp.PD_DATE.Trim(), "yyyyMMdd", null, System.Globalization.DateTimeStyles.None, out date); oper.ПДДата = date; oper.СуммаВсего = Decimal.Parse(oper_imp.SUMM_ALL.Trim().Replace('.', ',')); oper.СуммаСтоимость = Decimal.Parse(oper_imp.SUMM_COST.Trim().Replace('.', ',')); oper.СуммаНДСБаза = Decimal.Parse(oper_imp.SUMM_VAT_PAY.Trim().Replace('.', ',')); oper.СуммаНДСВычет = Decimal.Parse(oper_imp.SUMM_VAT_BAY.Trim().Replace('.', ',')); oper.СуммаНДССтоимость = Decimal.Parse(oper_imp.SUMM_VAT_COST.Trim().Replace('.', ',')); oper.СуммаНДС19Входящий = Decimal.Parse(oper_imp.SUMM_VAT_IN.Trim().Replace('.', ',')); oper.СуммаНДС19Списано = Decimal.Parse(oper_imp.SUMM_VAT_IN_USE.Trim().Replace('.', ',')); if (oper.ТипКниги == Операция.ТипКнигиТип.ПРОДАЖ) { if (oper.СФТип != "СФВ") { oper.СуммаСтоимость = oper.СуммаВсего; oper.СуммаСтоимость += -oper.СуммаНДСБаза; } else { oper.СуммаСтоимость = Decimal.Round(oper.СуммаНДСБаза * 100 / 18, 2); oper.СуммаВсего = oper.СуммаСтоимость + oper.СуммаНДСБаза; } } //oper_imp.SUMM_ALL; //oper_imp.SUMM_COST; //oper_imp.SUMM_VAT_PAY; //oper_imp.SUMM_VAT_IN; //oper_imp.SUMM_VAT_IN_USE; //oper_imp.SUMM_VAT_COST; //oper_imp.SUMM_VAT_BAY; //System.Console.WriteLine(oper_import.SUMM_ALL + "_" + oper_import.SUMM_VAT_PAY + "_" + oper_import.SUMM_VAT_BAY); } }
/// <summary> /// /// </summary> /// <param name="os"></param> /// <param name="строка"></param> /// <param name="invoice"></param> /// <param name="sf_sfz_type"></param> static public void ProcessLine(IObjectSpace os, СтрокаОснов строка, InvoiceImport invoice, fmCAVTInvoiceType sf_sfz_type) { // !!!!!!!!!!!!!!!!!!!!!!!!!! // Выбраковываем СФ if (строка.ТипОснования == Основание.ТипОснования.Неопределен || строка.ТипЛица == ЛицоТип.НЕЗАДАН || String.IsNullOrEmpty(строка.ИННПродавца) || String.IsNullOrEmpty(строка.егНомер) && строка.ТипОснования != Основание.ТипОснования.СФЗ || String.IsNullOrEmpty(строка.Номер) || строка.Дата < new DateTime(2000, 1, 1) || строка.ТипЛица == ЛицоТип.ЮР_ЛИЦО && (строка.ИНН.Length != 10 || !Regex.IsMatch(строка.ИНН, _ИНН_ЮЛ_Рег) || строка.КПП.Length != 9 || !Regex.IsMatch(строка.КПП, _КПП_Рек)) || строка.ТипЛица == ЛицоТип.ПРЕДПРИНИМАТЕЛЬ && (строка.ИНН.Length != 12 || !Regex.IsMatch(строка.ИНН, _ИНН_ФЛ_Рег)) ) { return; } // !!!!!!!!!!!!!!!!!!!!!!!!!! Основание sf = os.FindObject <Основание>( new BinaryOperator("ИннПродавца", строка.ИННПродавца) & new BinaryOperator("Номер", строка.Номер) & new BinaryOperator("Дата", строка.Дата, BinaryOperatorType.GreaterOrEqual) & new BinaryOperator("Дата", строка.Дата.AddDays(1), BinaryOperatorType.Less)); if (sf == null) { sf = os.CreateObject <Основание>(); sf.Источник = строка.ТипИсточника; sf.Налогоплательщик = строка.ИмпортОснований.Налогоплательщик; sf.Подразделение = строка.ИмпортОснований.Подразделение; sf.ИНН = строка.ИНН; sf.Номер = строка.Номер; sf.Дата = строка.Дата; sf.КПП = строка.КПП; } строка.Основание = sf; ////!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! //// Временно для обновления имеющихся оснований //sf.Налогоплательщик = строка.ИмпортОснований.Налогоплательщик; //sf.Подразделение = строка.ИмпортОснований.Подразделение; ////!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! sf.Корректировка = Основание.ТипПодчиненности.ОСНОВНОЙ; // sf.Источник = ts; sf.Тип = строка.ТипОснования; sf.ЛицоТип = строка.ТипЛица; ОснованиеДокумент sfdoc = null; String sfdoc_sver = invoice.SF_PRAV_NUMBER.Trim(); if (String.IsNullOrEmpty(sfdoc_sver)) { sfdoc_sver = "0"; } UInt16 sfdoc_ver = 0; UInt16.TryParse(sfdoc_sver, out sfdoc_ver); DateTime sfdoc_date = default(DateTime); DateTime.TryParseExact(invoice.SF_DATE.Trim(), "yyyyMMdd", null, System.Globalization.DateTimeStyles.None, out sfdoc_date); Decimal summ_cost = Decimal.Parse(invoice.SUMM_COST.Trim().Replace('.', ',')); Decimal summ_nds = Decimal.Parse(invoice.SUMM_NDS.Trim().Replace('.', ',')); Decimal summ_sub_cost = Decimal.Parse(invoice.SUMM_SUB_COST.Trim().Replace('.', ',')); Decimal summ_sub_nds = Decimal.Parse(invoice.SUMM_SUB_NDS.Trim().Replace('.', ',')); if (sf.Источник == Основание.ТипИсточника.ИСХОДЯЩИЙ && sf.Тип != Основание.ТипОснования.Неопределен && sf.Тип != Основание.ТипОснования.СЧГ && sf.Тип != Основание.ТипОснования.БЖД && sf.Тип != Основание.ТипОснования.СФЗ) { if (строка.СчетФактура != null) { if (sfdoc_sver == "0" && !String.IsNullOrEmpty(строка.СчетФактура.Current.VersionNumber)) { sfdoc_sver = строка.СчетФактура.Current.VersionNumber; UInt16.TryParse(sfdoc_sver, out sfdoc_ver); sfdoc_date = строка.СчетФактура.Current.VersionDate; } if (summ_cost == 0 && summ_nds == 0 && summ_sub_cost == 0 && summ_sub_nds == 0) { summ_cost = строка.СчетФактура.SummAll - строка.СчетФактура.SummAVT; summ_nds = строка.СчетФактура.SummAVT; } } } foreach (ОснованиеДокумент doc in sf.Документы) { if (doc.НомерИсправления == sfdoc_ver) { sfdoc = doc; break; } } if (sfdoc == null) { sfdoc = os.CreateObject <ОснованиеДокумент>(); sf.Документы.Add(sfdoc); sfdoc.НомерИсправления = sfdoc_ver; if (sf.ДействующийДокумент.НомерИсправления < sfdoc.НомерИсправления) { sf.ДействующийДокумент = sfdoc; } } строка.ОснованиеДокумент = sfdoc; sfdoc.ДатаИсправления = sfdoc_date; sfdoc.егНомер = строка.егНомер; if (sf.Тип == Основание.ТипОснования.СФЗ && String.IsNullOrEmpty(sfdoc.егНомер)) { Int32 IntNumber = fmCAVTInvoiceNumberGenerator.GenerateNumber(((ObjectSpace)os).Session, sf.ДействующийДокумент.CID, sf_sfz_type, sf.Дата, 0); sfdoc.егНомер = sf_sfz_type.Prefix + sf.Дата.ToString("yyyyMM").Substring(2, 4) + IntNumber.ToString("00000"); строка.егНомер = sfdoc.егНомер; } sfdoc.КодПартнера = строка.Контрагент.Code; sfdoc.НаименКонтрагента = строка.Контрагент.Name; sfdoc.СуммаВсего = summ_cost + summ_nds; sfdoc.СуммаНДС = summ_nds; sfdoc.СуммаВсегоУвел = sfdoc.СуммаВсего + summ_sub_cost; sfdoc.СуммаНДСУвел = sfdoc.СуммаНДС + summ_sub_nds; }
protected override void OnChanged(string propertyName, object oldValue, object newValue) { base.OnChanged(propertyName, oldValue, newValue); if (IsLoading) { return; } switch (propertyName) { case "ТипИсточника": case "ИНН": if (ТипИсточника == Основание.ТипИсточника.ВХОДЯЩИЙ) { ИННПродавцаУст(ИНН); } else { ИННПродавцаУст(Контейнер.Налогоплательщик.ИНН); } // ОбновитьСчетФактуру(); break; case "Номер": case "Дата": // ОбновитьСчетФактуру(); break; case "Контрагент": ОбновитьКонтрагента(); break; //case "СчетФактура": // if (СчетФактура != null) { // if (СчетФактура.Supplier.INN == Контейнер.Налогоплательщик.ИНН) { // Контрагент = СчетФактура.Customer; // ТипИсточника = RuVat.Основание.ТипИсточника.ИСХОДЯЩИЙ; // } else { // Контрагент = СчетФактура.Supplier; // ТипИсточника = RuVat.Основание.ТипИсточника.ВХОДЯЩИЙ; // } // Номер = СчетФактура.Number; // Дата = СчетФактура.Date; // if (ТипИсточника == RuVat.Основание.ТипИсточника.ИСХОДЯЩИЙ) { // String dates = СчетФактура.Date.ToString("yyyyMMdd"); // РегНомер = СчетФактура.RegNumber[0] + dates.Substring(2,2) + // //+ dates[2] + dates[3] + // СчетФактура.RegNumber.Substring(1); // } // else // РегНомер = СчетФактура.RegNumber; // ТипОснования = Основание.ТипОснования.Неопределен; // } // break; case "Основание": if (Основание != null) { if (ОснованиеДокумент == null || ОснованиеДокумент.Основание != Основание) { ОснованиеДокумент = Основание.ДействующийДокумент; } } else { ОснованиеДокумент = null; } break; case "ОснованиеДокумент": if (ОснованиеДокумент != null && ОснованиеДокумент.Основание != Основание) { Основание = ОснованиеДокумент.Основание; } break; } }
static public void ImportInvoices(IObjectSpace os, String file_name) { // OpenFileDialog dialog = new OpenFileDialog(); // if (dialog.ShowDialog() == DialogResult.OK) { FixedFileEngine engine = new FixedFileEngine(typeof(InvoiceImport)); InvoiceImport[] imp_res = (InvoiceImport[])engine.ReadFile(file_name); IList <fmCAVTInvoiceType> inv_types = os.GetObjects <fmCAVTInvoiceType>(); IList <fmCAVTInvoiceTransferType> inv_transfer_types = os.GetObjects <fmCAVTInvoiceTransferType>(); IList <fmCAVTInvoiceOperationType> inv_oper_types = os.GetObjects <fmCAVTInvoiceOperationType>(); Int32 count = 0; fmCAVTInvoiceType sf_sfz_type = os.GetObjects <fmCAVTInvoiceType>().First(x => x.Prefix == "Z"); foreach (InvoiceImport imp_rec in imp_res) { imp_rec.SF_VO_CODE = imp_rec.SF_VO_CODE.Trim(); imp_rec.SF_INT_NUMBER = imp_rec.SF_INT_NUMBER.Trim(); imp_rec.SF_NUMBER = imp_rec.SF_NUMBER.Trim(); Decimal summ_cost = Decimal.Parse(imp_rec.SUMM_COST.Trim().Replace('.', ',')); Decimal summ_nds = Decimal.Parse(imp_rec.SUMM_NDS.Trim().Replace('.', ',')); Decimal summ_sub_cost = Decimal.Parse(imp_rec.SUMM_SUB_COST.Trim().Replace('.', ',')); Decimal summ_sub_nds = Decimal.Parse(imp_rec.SUMM_SUB_NDS.Trim().Replace('.', ',')); DateTime sf_date = default(DateTime); DateTime.TryParseExact(imp_rec.SF_DATE.Trim(), "yyyyMMdd", null, System.Globalization.DateTimeStyles.None, out sf_date); crmCParty party = os.GetObjects <crmCParty>(new BinaryOperator("Code", imp_rec.SF_VO_CODE)).FirstOrDefault(); if (party == null) { System.Console.WriteLine("SF " + imp_rec.SF_NUMBER + " party not found (" + imp_rec.SF_VO_CODE + ")"); continue; } Основание.ТипИсточника ts; if (imp_rec.SF_IO_TYPE == "I") { ts = Основание.ТипИсточника.ВХОДЯЩИЙ; } else if (imp_rec.SF_IO_TYPE == "O") { ts = Основание.ТипИсточника.ИСХОДЯЩИЙ; } else { throw new ArgumentOutOfRangeException("SF " + imp_rec.SF_NUMBER + " неопределен тип входящий/исходящий"); } Основание.ТипОснования tsf; switch (imp_rec.SF_TYPE) { case "СЧФ": tsf = Основание.ТипОснования.СЧФ; break; case "УПД": tsf = Основание.ТипОснования.УПД; break; case "СФА": tsf = Основание.ТипОснования.СФА; break; case "СФЗ": tsf = Основание.ТипОснования.СФЗ; break; case "СЧГ": tsf = Основание.ТипОснования.СЧГ; break; case "БЖД": tsf = Основание.ТипОснования.БЖД; break; case "СФВ": tsf = Основание.ТипОснования.СФВ; break; case "БСО": tsf = Основание.ТипОснования.БСО; break; case "ЧЕК": tsf = Основание.ТипОснования.ЧЕК; break; default: System.Console.WriteLine("SF: " + imp_rec.SF_NUMBER + " странный тип (" + imp_rec.SF_TYPE + ")"); continue; } String inn = ""; String kpp = ""; ЛицоТип party_type = ЛицоТип.НЕЗАДАН; if (party.Person != null) { if (party.Person.Address.Country.CodeAlfa2 == "RU") { // Type party.ComponentTypeComponentObject.GetType(); if (party.ComponentType == typeof(crmCLegalPerson) || party.ComponentType == typeof(crmCLegalPersonUnit)) { party_type = ЛицоТип.ЮР_ЛИЦО; inn = party.INN; if (inn.Length == 9) { inn = "0" + inn; } kpp = party.KPP; if (inn.Length == 8) { kpp = "0" + kpp; } if (inn.Length != 10) { System.Console.WriteLine("Party: " + party.Code + " fail INN (" + inn + ")"); continue; } if (kpp.Length != 9) { System.Console.WriteLine("Party: " + party.Code + " fail KPP (" + kpp + ")"); continue; } } else { if (party.ComponentType == typeof(crmCBusinessman)) { party_type = ЛицоТип.ПРЕДПРИНИМАТЕЛЬ; inn = party.INN; if (inn.Length == 11) { inn = "0" + inn; } if (inn.Length != 12) { System.Console.WriteLine("Party: " + party.Code + " fail INN (" + inn + ")"); continue; } } else if (party.ComponentType == typeof(crmCPhysicalParty)) { party_type = ЛицоТип.ФИЗ_ЛИЦО; } } } else { party_type = ЛицоТип.ИНО_ПАРТНЕР; System.Console.WriteLine("Party: " + party.Code + " инопартнер "); } } if (party.Code == "2706") { party_type = ЛицоТип.ОЗНИЦА; } // String sale_inn = "5012039795"; if (ts == Основание.ТипИсточника.ВХОДЯЩИЙ) { sale_inn = inn; } // !!!!!!!!!!!!!!!!!!!!!!!!!! // Выбраковываем СФ if (String.IsNullOrEmpty(sale_inn) || String.IsNullOrEmpty(imp_rec.SF_REGNUM.Trim()) && tsf != Основание.ТипОснования.СФЗ) { continue; } // !!!!!!!!!!!!!!!!!!!!!!!!!! Основание sf = os.FindObject <Основание>( XPQuery <Основание> .TransformExpression( ((ObjectSpace)os).Session, rec => rec.ИннПродавца == sale_inn && rec.Номер == imp_rec.SF_NUMBER && rec.Дата >= sf_date && rec.Дата < sf_date.AddDays(1) )); if (sf == null) { sf = os.CreateObject <Основание>(); sf.Источник = ts; sf.ИНН = inn; sf.Номер = imp_rec.SF_NUMBER; sf.Дата = sf_date; sf.КПП = kpp; } sf.Корректировка = Основание.ТипПодчиненности.ОСНОВНОЙ; sf.Источник = ts; sf.Тип = tsf; sf.ЛицоТип = party_type; ОснованиеДокумент sfdoc = null; String sfdoc_sver = imp_rec.SF_PRAV_NUMBER.Trim(); if (String.IsNullOrEmpty(sfdoc_sver)) { sfdoc_sver = "0"; } UInt16 sfdoc_ver = 0; UInt16.TryParse(sfdoc_sver, out sfdoc_ver); DateTime sfdoc_date = default(DateTime); DateTime.TryParseExact(imp_rec.SF_DATE.Trim(), "yyyyMMdd", null, System.Globalization.DateTimeStyles.None, out sfdoc_date); foreach (ОснованиеДокумент doc in sf.Документы) { if (doc.НомерИсправления == sfdoc_ver) { sfdoc = doc; break; } } if (sfdoc == null) { sfdoc = os.CreateObject <ОснованиеДокумент>(); sf.Документы.Add(sfdoc); sfdoc.НомерИсправления = sfdoc_ver; if (sf.ДействующийДокумент.НомерИсправления < sfdoc.НомерИсправления) { sf.ДействующийДокумент = sfdoc; } } sfdoc.ДатаИсправления = sfdoc_date; sfdoc.егНомер = imp_rec.SF_REGNUM.Trim(); if (sf.Тип == Основание.ТипОснования.СФЗ && String.IsNullOrEmpty(sfdoc.егНомер)) { Int32 IntNumber = fmCAVTInvoiceNumberGenerator.GenerateNumber(((ObjectSpace)os).Session, sf.ДействующийДокумент.CID, sf_sfz_type, sf.Дата, 0); sfdoc.егНомер = sf_sfz_type.Prefix + sf.Дата.ToString("yyyyMM").Substring(2, 4) + IntNumber.ToString("00000"); } sfdoc.КодПартнера = party.Code; sfdoc.НаименКонтрагента = party.Name; sfdoc.СуммаВсего = summ_cost + summ_nds; sfdoc.СуммаНДС = summ_nds; sfdoc.СуммаВсегоУвел = sfdoc.СуммаВсего + summ_sub_cost; sfdoc.СуммаНДСУвел = sfdoc.СуммаНДС + summ_sub_nds; //fmCAVTInvoiceBase invoice = os.FindObject<fmCAVTInvoiceBase>( // XPQuery<fmCAVTInvoiceBase>.TransformExpression( // ((ObjectSpace)os).Session, // rec => rec.Supplier.Code == imp_rec.SF_VO_CODE && // rec.RegNumber == imp_rec.SF_INT_NUMBER && // rec.Date >= sf_date && // rec.Date < sf_date.AddDays(1) // )); ////if (invoice == null) { //// count++; //// System.Console.WriteLine(imp_rec.SF_INT_NUMBER + " " + imp_rec.SF_NUMBER + " " + imp_rec.SF_DATE + " " + summ_cost + " " + summ_nds); ////} //if (invoice == null) { // crmCParty party = os.GetObjects<crmCParty>(new BinaryOperator("Code", imp_rec.SF_VO_CODE)).FirstOrDefault(); // invoice = os.CreateObject<fmCAVTInvoiceBase>(); // invoice.RegNumber = imp_rec.SF_INT_NUMBER; // invoice.Number = imp_rec.SF_NUMBER; // invoice.Date = sf_date; // invoice.Supplier = party; // invoice.Customer = register.Party; // invoice.SummAVT = Decimal.Parse(imp_rec.SUMM_NDS.Trim().Replace('.', ',')); // invoice.SummCost = Decimal.Parse(imp_rec.SUMM_COST.Trim().Replace('.', ',')); //} //else { // invoice.SummAVT = Decimal.Parse(imp_rec.SUMM_NDS.Trim().Replace('.', ',')); // invoice.SummCost = Decimal.Parse(imp_rec.SUMM_COST.Trim().Replace('.', ',')); // fmCAVTInvoiceRegisterLine line_check = os.FindObject<fmCAVTInvoiceRegisterLine>( // CriteriaOperator.And(new BinaryOperator("InvoiceVersion", invoice.Current)), true); // if (line_check != null) continue; //} //fmCAVTInvoiceRegisterLine line = register.InLines.Where(rec => rec.Invoice == invoice).FirstOrDefault(); //if (line == null) { // line = os.CreateObject<fmCAVTInvoiceRegisterLine>(); // register.InLines.Add(line); //} //line.SequenceNumber = seq_num++; //// line_doc.DateTransfer = invoice.Date; //line.Invoice = invoice; //line.TransferType = inv_transfer_types.Where(rec => rec.Code == "1").FirstOrDefault(); //if (String.IsNullOrEmpty(imp_rec.SF_TRANS_DATE.Trim())) { // DateTime trans_date = default(DateTime); // DateTime.TryParseExact(imp_rec.SF_TRANS_DATE.Trim(), "yyyyMMdd", null, System.Globalization.DateTimeStyles.None, out trans_date); // line.DateTransfer = trans_date; //} //if (line.DateTransfer < sf_date) // line.DateTransfer = sf_date; //line.OperationType = inv_oper_types.Where(rec => rec.Code == imp_rec.SF_OPER_TYPE.Trim() || // rec.Code == '0' + imp_rec.SF_OPER_TYPE.Trim()).FirstOrDefault(); } System.Console.WriteLine("All " + count); }