/// <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; }
/// <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; }
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); }
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; } } }
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")); } }
/// <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; }
/// <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; }