コード例 #1
0
 /// <summary>
 /// Intitialization  for Post Invoice
 /// </summary>
 /// <param name="postingResult">Result from Post Invoice</param>
 /// <param name="api">Current api instance</param>
 /// <param name="companyLayoutType">Layout type</param>
 public DebtorInvoicePrintReport(InvoicePostingResult postingResult, CrudAPI api, CompanyLayoutType companyLayoutType)
 {
     invoicePostingResult = postingResult;
     crudApi    = api;
     isRePrint  = true;
     layoutType = companyLayoutType;
 }
コード例 #2
0
 /// <summary>
 /// Initialization for Post invoice
 /// </summary>
 /// <param name="invPostingResult">Result from postinvoice</param>
 /// <param name="api">Api instacce</param>
 /// <param name="companyLayoutType">Layout type</param>
 public CreditorPrintReport(InvoicePostingResult invPostingResult, CrudAPI api, CompanyLayoutType companyLayoutType)
 {
     invoicePostingResult = invPostingResult;
     crudApi    = api;
     isRePrint  = true;
     layoutType = companyLayoutType;
 }
コード例 #3
0
        async private Task <IPrintReport> ValidateStandardPrint(InvoicePostingResult invoicePostingResult, ProjectClient project, CompanyLayoutType layoutType)
        {
            busyIndicator.IsBusy = true;
            busyIndicator.BusyContent = string.Format("{0}..{1}: {2}", Uniconta.ClientTools.Localization.lookup("LoadingMsg"), Uniconta.ClientTools.Localization.lookup("Project"), project?._Number);
            IPrintReport standardPrint = null;

            try
            {
                var debtorInvoicePrint = new DebtorInvoicePrintReport(invoicePostingResult, api, layoutType);
                var isInitializedSuccess = await debtorInvoicePrint.InstantiateFields();

                if (isInitializedSuccess)
                {
                    var standardDebtorInvoice = new DebtorInvoiceReportClient(debtorInvoicePrint.Company, debtorInvoicePrint.Debtor, debtorInvoicePrint.DebtorInvoice, debtorInvoicePrint.InvTransInvoiceLines, debtorInvoicePrint.DebtorOrder,
                                                                              debtorInvoicePrint.CompanyLogo, debtorInvoicePrint.ReportName, isCreditNote: debtorInvoicePrint.IsCreditNote, messageClient: debtorInvoicePrint.MessageClient);
                    standardPrint = new StandardPrintReport(api, new[] { standardDebtorInvoice }, (byte)Uniconta.ClientTools.Controls.Reporting.StandardReports.Invoice);
                    standardPrint = new LayoutPrintReport(api, invoicePostingResult, layoutType);
                }
                await standardPrint.InitializePrint();

                if (standardPrint?.Report == null)
                {
                    standardPrint = new LayoutPrintReport(api, invoicePostingResult, layoutType);
                    await standardPrint.InitializePrint();
                }
            }
            catch (Exception ex)
            {
                busyIndicator.IsBusy = false;
                api.ReportException(ex, string.Format("ProjectMultiLineInvoicePage.ValidateStandardPrint(), CompanyId={0}", api.CompanyId));
            }
            finally { busyIndicator.IsBusy = false; }

            return(standardPrint);
        }
コード例 #4
0
ファイル: clsUniconta.cs プロジェクト: hafsjold/snvrepos
        public void TestFakturering()
        {
            InvoiceAPI invoiceAPI = new InvoiceAPI(m_api);

            var taskDebtorOrder = m_api.Query <DebtorOrderClient>();

            taskDebtorOrder.Wait();
            var DebtorOrders = taskDebtorOrder.Result;

            foreach (var DebtorOrder in DebtorOrders)
            {
                List <DebtorOrderClient> Masters = new List <DebtorOrderClient>();
                Masters.Add(DebtorOrder);
                var taskDebtorOrderLines = m_api.Query <DebtorOrderLineClient>(Masters, null);
                taskDebtorOrderLines.Wait();
                var DebtorOrderLines = taskDebtorOrderLines.Result;
                var taskInvoice      = invoiceAPI.PostInvoice(DebtorOrder, DebtorOrderLines, DateTime.Now, 0, true, null, null);
                taskInvoice.Wait();
                InvoicePostingResult   resultInvoice = taskInvoice.Result;
                ErrorCodes             Err           = resultInvoice.Err;
                DCInvoice              Header        = resultInvoice.Header;
                IEnumerable <InvTrans> Lines         = resultInvoice.Lines;
                PostingResult          ledgerRes     = resultInvoice.ledgerRes;
                if (Err == ErrorCodes.Succes)
                {
                    var xxx = DebtorOrder.InvoiceInterval;
                    var yyy = DebtorOrder.Invoices;
                }
            }
        }
コード例 #5
0
        static public async void GenerateOIOXml(CrudAPI api, InvoicePostingResult res)
        {
            var Comp     = api.CompanyEntity;
            var InvCache = api.GetCache(typeof(Uniconta.DataModel.InvItem)) ?? await api.LoadCache(typeof(Uniconta.DataModel.InvItem));

            var VatCache = api.GetCache(typeof(Uniconta.DataModel.GLVat)) ?? await api.LoadCache(typeof(Uniconta.DataModel.GLVat));

            //SystemInfo.Visible = true;

            int            countErr   = 0;
            SaveFileDialog saveDialog = null;
            InvoiceAPI     Invapi     = new InvoiceAPI(api);

            var invClient = (DebtorInvoiceClient)res.Header;

            var Debcache = Comp.GetCache(typeof(Debtor)) ?? await api.LoadCache(typeof(Debtor));

            var debtor = (Debtor)Debcache.Get(invClient._DCAccount);

            var layoutGroupCache = api.GetCache(typeof(DebtorLayoutGroup)) ?? await api.LoadCache(typeof(DebtorLayoutGroup));

            var invoiceLines = (InvTransClient[])res.Lines;

            Contact contactPerson = null;

            if (invClient._ContactRef != 0)
            {
                var Contacts = api.GetCache(typeof(Uniconta.DataModel.Contact)) ?? await api.LoadCache(typeof(Uniconta.DataModel.Contact));

                foreach (var contact in (Uniconta.DataModel.Contact[])Contacts.GetRecords)
                {
                    if (contact.RowId == invClient._ContactRef)
                    {
                        contactPerson = contact;
                        break;
                    }
                }
            }

            DebtorOrders.SetDeliveryAdress(invClient, debtor, api);

            Debtor deliveryAccount;

            if (invClient._DeliveryAccount != null)
            {
                deliveryAccount = (Debtor)Debcache.Get(invClient._DeliveryAccount);
            }
            else
            {
                deliveryAccount = null;
            }

            WorkInstallation workInstallation = null;

            if (invClient._Installation != null)
            {
                var workInstallCache = api.GetCache(typeof(Uniconta.DataModel.WorkInstallation)) ?? await api.LoadCache(typeof(Uniconta.DataModel.WorkInstallation));

                workInstallation = (WorkInstallation)workInstallCache.Get(invClient._Installation);
            }

            CreationResult result;

            if (Comp._CountryId == CountryCode.Norway || Comp._CountryId == CountryCode.Netherlands)
            {
                result = EHF.GenerateEHFXML(Comp, debtor, deliveryAccount, invClient, invoiceLines, InvCache, VatCache, null, contactPerson);
            }
            else if (Comp._CountryId == CountryCode.Iceland)
            {
                var paymFormatCache = Comp.GetCache(typeof(DebtorPaymentFormatClientIceland)) ?? await api.LoadCache(typeof(DebtorPaymentFormatClientIceland));

                TableAddOnData[] attachments = await UBL.Iceland.Attachments.CollectInvoiceAttachments(invClient, api);

                result = TS136137.GenerateTS136137XML(Comp, debtor, deliveryAccount, invClient, invoiceLines, InvCache, VatCache, null, contactPerson, paymFormatCache, attachments);
            }
            else
            {
                var attachments = await FromXSDFile.OIOUBL.ExportImport.Attachments.CollectInvoiceAttachments(invClient, api);

                result = Uniconta.API.DebtorCreditor.OIOUBL.GenerateOioXML(Comp, debtor, deliveryAccount, invClient, invoiceLines, InvCache, VatCache, null, contactPerson, attachments, layoutGroupCache, workInstallation);
            }

            bool createXmlFile = true;

            var errorInfo = "";

            if (result.HasErrors)
            {
                countErr++;
                createXmlFile = false;
                foreach (FromXSDFile.OIOUBL.ExportImport.PrecheckError error in result.PrecheckErrors)
                {
                    errorInfo += error.ToString() + "\n";
                }
            }

            var  applFilePath  = string.Empty;
            bool hasUserFolder = false;

            if (result.Document != null && createXmlFile)
            {
                var filename = string.Format("{0}_{1}", Uniconta.ClientTools.Localization.lookup("Invoice"), invClient.InvoiceNumber);

                if (session.User._AppDocPath != string.Empty && Directory.Exists(session.User._AppDocPath))
                {
                    try
                    {
                        applFilePath = string.Format("{0}\\OIOUBL", session.User._AppDocPath);
                        Directory.CreateDirectory(applFilePath);

                        filename      = string.Format("{0}\\{1}.xml", applFilePath, filename);
                        hasUserFolder = true;
                    }
                    catch (Exception ex)
                    {
                        UnicontaMessageBox.Show(ex);
                    }
                }
                else
                {
                    saveDialog          = UtilDisplay.LoadSaveFileDialog;
                    saveDialog.FileName = filename;
                    saveDialog.Filter   = "XML-File | *.xml";
                    bool?dialogResult = saveDialog.ShowDialog();
                    if (dialogResult != true)
                    {
                        return;
                    }

                    filename = saveDialog.FileName;
                }

                result.Document.Save(filename);
                await Invapi.MarkSendInvoiceOIO(invClient);

                if (hasUserFolder)
                {
                    UnicontaMessageBox.Show(string.Format(Uniconta.ClientTools.Localization.lookup("SaveFileMsgOBJ"), 1, Uniconta.ClientTools.Localization.lookup("Invoice"), applFilePath)
                                            , Uniconta.ClientTools.Localization.lookup("Information"));
                }
            }

            if (countErr != 0 && !string.IsNullOrWhiteSpace(errorInfo))
            {
                UnicontaMessageBox.Show(errorInfo, Uniconta.ClientTools.Localization.lookup("Error"));
            }
        }
コード例 #6
0
 /// <summary>
 /// Initialization for Post Invoice and DebtorOrder Client
 /// </summary>
 /// <param name="postingResult">PostInvoice result</param>
 /// <param name="api">Current api instance</param>
 /// <param name="companyLayoutType">Layout type</param>
 /// <param name="orderClient">DebtorOrder/DebtorOffer client</param>
 public DebtorInvoicePrintReport(InvoicePostingResult postingResult, CrudAPI api, CompanyLayoutType companyLayoutType, DCOrder orderClient) : this(postingResult, api, companyLayoutType)
 {
     DebtorOrder = orderClient;
 }
コード例 #7
0
 /// <summary>
 /// Intialization of CreditorInvoice with Creditor Order
 /// </summary>
 /// <param name="postingResult">Invoice posting result</param>
 /// <param name="api">Api instance</param>
 /// <param name="companyLayoutType">Layout type</param>
 /// <param name="orderClient">Creditor Order client instance</param>
 public CreditorPrintReport(InvoicePostingResult postingResult, CrudAPI api, CompanyLayoutType companyLayoutType, CreditorOrderClient orderClient) : this(postingResult, api, companyLayoutType)
 {
     CreditorOrder = orderClient;
 }