Пример #1
0
        public static void Обновить(IObjectSpace os, ОперацияКонтИмпортСтруктур конт, Основание.ТипИсточника источник, fmCAVTBookBuhStructRecord запись)
        {
            Документ cur_doc       = null;
            UInt16   change_number = 0;

            if (!String.IsNullOrEmpty(запись.InvoiceChangeNumber))
            {
                UInt16.TryParse(запись.InvoiceChangeNumber, out change_number);
            }
            foreach (var doc in конт.Документы)
            {
                if (doc.ТипИсточника == источник &&
                    doc.Контрагент == запись.PartnerParty &&
                    doc.Номер == запись.InvoiceNumber && doc.Дата == запись.InvoiceDate &&
                    doc.НомерИсправления == change_number && doc.ДатаИсправления == запись.InvoiceChangeDate)
                {
                    cur_doc = doc;
                    break;
                }
            }
            if (cur_doc == null)
            {
                cur_doc = os.CreateObject <Документ>();
                конт.Документы.Add(cur_doc);
                cur_doc.ТипИсточника     = источник;
                cur_doc.Контрагент       = запись.PartnerParty;
                cur_doc.Номер            = запись.InvoiceNumber;
                cur_doc.Дата             = запись.InvoiceDate;
                cur_doc.НомерИсправления = change_number;
                cur_doc.ДатаИсправления  = запись.InvoiceChangeDate; //                cur_doc.СчетФактураУст(запись.Invoice);
                cur_doc.ТипОснования     = Основание.String2ТипОснования(запись.InvoiceType);
                if (источник == Основание.ТипИсточника.ВХОДЯЩИЙ || cur_doc.ТипОснования == Основание.ТипОснования.ГТД ||
                    cur_doc.ТипОснования == Основание.ТипОснования.СФЗ)
                {
                    cur_doc.егНомер = запись.InvoiceRegNumber;
                }
                else
                {
                    String dates = запись.InvoiceDate.ToString("yyyyMMdd");
                    // !!!!!!!!!!!!!!!!
                    // Ошибочные номера счетов-фактур выставленных
//                    if (запись.InvoiceNumber[0] == '0')
//                        cur_doc.РегНомер = запись.InvoiceRegNumber[0] + dates.Substring(2, 2) + запись.InvoiceRegNumber.Substring(1);
//                    else
                    cur_doc.егНомер = запись.InvoiceNumber[0] + dates.Substring(2, 2) + запись.InvoiceNumber.Substring(1);
//                    cur_doc.РегНомер = запись.InvoiceRegNumber;
                }
            }
            ОбновитьДокумент(os, cur_doc, источник, запись);
            if (источник == Основание.ТипИсточника.ИСХОДЯЩИЙ)
            {
                ОбновитьОперациюПродаж(os, конт, cur_doc, источник, запись);
            }
            if (источник == Основание.ТипИсточника.ВХОДЯЩИЙ)
            {
                ОбновитьОперациюПокупок(os, конт, cur_doc, источник, запись);
            }
        }
Пример #2
0
            static public void ImportLine(IObjectSpace os, СтрокаОснов строка, InvoiceImport invoice)
            {
                //            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;
                //
                //                foreach (InvoiceImport imp_rec in imp_res) {
                invoice.SF_VO_CODE    = invoice.SF_VO_CODE.Trim();
                invoice.SF_INT_NUMBER = invoice.SF_INT_NUMBER.Trim();
                invoice.SF_NUMBER     = invoice.SF_NUMBER.Trim();
                //                    crmCParty party =
                //                    Основание.ТипИсточника ts;
                if (invoice.SF_IO_TYPE == "I")
                {
                    строка.ТипИсточника = Основание.ТипИсточника.ВХОДЯЩИЙ;
                }
                else if (invoice.SF_IO_TYPE == "O")
                {
                    строка.ТипИсточника = Основание.ТипИсточника.ИСХОДЯЩИЙ;
                }
                else
                {
//                    continue;
                    throw new ArgumentOutOfRangeException("SF " + invoice.SF_NUMBER + " неопределен тип входящий/исходящий");
                }
                строка.егНомер = invoice.SF_REGNUM.Trim();
                строка.Номер   = invoice.SF_NUMBER.Trim();
                DateTime date = default(DateTime);

                DateTime.TryParseExact(invoice.SF_DATE.Trim(), "yyyyMMdd", null, System.Globalization.DateTimeStyles.None, out date);
                строка.Дата = date;
                //                    Основание.ТипОснования tsf;

                строка.ТипОснования = Основание.String2ТипОснования(invoice.SF_TYPE.Trim());
                if (строка.ТипОснования == Основание.ТипОснования.Неопределен)
                {
                    System.Console.WriteLine("SF: " + invoice.SF_NUMBER + " странный тип (" + invoice.SF_TYPE + ")");
                }
                //                    String inn = "";
                //                    String kpp = "";
                строка.Контрагент = os.GetObjects <crmCParty>(new BinaryOperator("Code", invoice.SF_VO_CODE)).FirstOrDefault();
                if (строка.Контрагент == null)
                {
                    System.Console.WriteLine("SF " + invoice.SF_NUMBER + " party not found (" + invoice.SF_VO_CODE + ")");
                    return;
                    //continue;
                }
                //                ЛицоТип party_type = ЛицоТип.НЕЗАДАН;
                //
                //                    String sale_inn = "5012039795";
            }