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); опер.СуммаНДСВычет = опер.СуммаНДСВычет - опер.СуммаНДССтоимость; } }
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; } опер.СуммаСтоимость = опер.СуммаВсего - опер.СуммаНДСБаза; }