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