public static void ОбновитьОперациюПокупок(IObjectSpace os, ОперацияКонтИмпортСтруктур конт, Документ док, Основание.ТипИсточника источник, fmCAVTBookBuhStructRecord запись) { if (док.Основание == null || запись.SummAll == 0) { return; } Операция опер = os.CreateObject <Операция>(); конт.Операции.Add(опер); опер.ОснованиеДокумент = док.ОснованиеДокумент; опер.ТипКниги = Операция.ТипКнигиТип.ПОКУПОК; опер.ТипДеятельности = Операция.ТипДеятельностиТип.ОБЛ_18; опер.ТипОбъекта = Операция.ТипОбъектаТип.ЕАЛИЗАЦИЯ; опер.ТипНапрОпер = Операция.ТипНапрОперТип.НОРМАЛЬНЫЙ; if (запись.OperationType == null) { throw new ArgumentNullException("Незадан Тип операции для " + опер.ОснованиеДокумент); } if (запись.OperationType.Code == "01" || запись.OperationType.Code == "1") { опер.ТипОперВнутр = Операция.ТипОперВнутрТип.ЕАЛИЗАЦИЯ; } if (запись.OperationType.Code == "02" || запись.OperationType.Code == "2") { опер.ТипОперВнутр = Операция.ТипОперВнутрТип.АВАНС_ЗАЧЕТ; } опер.ТипОсновной = Операция.ТипОсновнойТип.ВЫЧЕТ; опер.ОснованиеРегНомер = док.егНомер; опер.СФТип = запись.InvoiceType; опер.СФНомер = запись.InvoiceNumber; опер.СФДата = запись.InvoiceDate; CS.Finance.csNDSRate rate = запись.BayVATRate; if (rate == null) { rate = запись.SaleVATRate; } if (rate != null) { if (rate.Code == "18%") { опер.Ставка = СтавкаНДС.ОБЛ_18; } if (rate.Code == "10%") { опер.Ставка = СтавкаНДС.ОБЛ_10; } if (rate.Code == "0%") { опер.Ставка = СтавкаНДС.ОБЛ_0; } if (rate.Code == "БЕЗ НДС") { опер.Ставка = СтавкаНДС.НЕОБЛ; } } else { опер.Ставка = СтавкаНДС.ОБЛ_18; } опер.ПериодБУ = конт.ПериодБУ; опер.ДатаБУ = конт.ДатаБУ; опер.ДатаНДС = запись.BayDate; if (запись.BayDate > new DateTime(2000, 1, 1)) { опер.ДатаНДС = запись.BayDate; } else { опер.ДатаНДС = опер.Контейнер.ПериодНДС != null ? опер.Контейнер.ПериодНДС.ДатаПо : default(DateTime); } // if (запись.BaySummVAT != 0) // throw new ArgumentOutOfRangeException("Незадана дата отнесения для покупок "); // опер.ДатаНДС = опер.ДатаБУ; if (запись.SaleSummAll != 0) { опер.СуммаВсего = запись.BaySummAll; } else { опер.СуммаВсего = запись.SummAll; } if (запись.SaleSummVAT != 0) { опер.СуммаНДСВычет = запись.BaySummVAT; } else { опер.СуммаНДСВычет = запись.SummVAT; } опер.СуммаСтоимость = опер.СуммаВсего - опер.СуммаНДСВычет; if (опер.ТипОперВнутр == Операция.ТипОперВнутрТип.ЕАЛИЗАЦИЯ) { опер.СуммаНДС19Входящий = опер.СуммаНДСВычет; опер.СуммаНДС19Списано = опер.СуммаНДСВычет; } if (док.Контейнер != null && док.Контейнер.ДоляСтоимость > 0) { опер.СуммаНДССтоимость = Decimal.Round(опер.СуммаНДСВычет * док.Контейнер.ДоляСтоимость, 2); опер.СуммаНДСВычет = опер.СуммаНДСВычет - опер.СуммаНДССтоимость; } }
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); } }
public static void ОбновитьОперациюПродаж(IObjectSpace os, ОперацияКонтИмпортСтруктур конт, Документ док, Основание.ТипИсточника источник, fmCAVTBookBuhStructRecord запись) { if (док.Основание == null || запись.SummAll == 0) { return; } Операция опер = os.CreateObject <Операция>(); конт.Операции.Add(опер); опер.ОснованиеДокумент = док.ОснованиеДокумент; опер.ТипКниги = Операция.ТипКнигиТип.ПРОДАЖ; опер.ТипДеятельности = Операция.ТипДеятельностиТип.ОБЛ_18; опер.ТипОбъекта = Операция.ТипОбъектаТип.ЕАЛИЗАЦИЯ; опер.ТипНапрОпер = Операция.ТипНапрОперТип.НОРМАЛЬНЫЙ; if (запись.OperationType.Code == "01" || запись.OperationType.Code == "1") { опер.ТипОперВнутр = Операция.ТипОперВнутрТип.ЕАЛИЗАЦИЯ; } if (запись.OperationType.Code == "02" || запись.OperationType.Code == "2") { опер.ТипОперВнутр = Операция.ТипОперВнутрТип.АВАНС; } опер.ТипОсновной = Операция.ТипОсновнойТип.НАЛ_БАЗА; опер.ОснованиеРегНомер = док.егНомер; опер.СФТип = запись.InvoiceType; опер.СФНомер = запись.InvoiceNumber; опер.СФДата = запись.InvoiceDate; CS.Finance.csNDSRate rate = запись.SaleVATRate; if (rate == null) { rate = запись.BayVATRate; } if (rate != null) { if (rate.Code == "18%") { опер.Ставка = СтавкаНДС.ОБЛ_18; } if (rate.Code == "10%") { опер.Ставка = СтавкаНДС.ОБЛ_10; } if (rate.Code == "0%") { опер.Ставка = СтавкаНДС.ОБЛ_0; } if (rate.Code == "БЕЗ НДС") { опер.Ставка = СтавкаНДС.НЕОБЛ; } } else { опер.Ставка = СтавкаНДС.ОБЛ_18; } if (запись.SaleDate > new DateTime(2000, 1, 1)) { опер.ДатаНДС = запись.SaleDate; } else { опер.ДатаНДС = запись.InvoiceDate; } опер.ПериодБУ = конт.ПериодБУ; опер.ДатаБУ = конт.ДатаБУ; if (запись.SaleSummAll != 0) { опер.СуммаВсего = запись.SaleSummAll; } else { опер.СуммаВсего = запись.SummAll; } if (запись.SaleSummVAT != 0) { опер.СуммаНДСБаза = запись.SaleSummVAT; } else { опер.СуммаНДСБаза = запись.SummVAT; } опер.СуммаСтоимость = опер.СуммаВсего - опер.СуммаНДСБаза; }