private async Task <ErrorCodes> SavePdfFileToVouchers( CrudAPI crudApi, docType_ns_VSKSkyrslaSvar reply) { var errorCode = ErrorCodes.NoSucces; byte[] docBytes = reply.PDFKvittun; var vc = new VouchersClient { _Data = docBytes, Fileextension = FileextensionsTypes.PDF, Text = "VSK skil", _Amount = reply.NidurstadaSkila.Fjarhaedir.TilGreidslu ?? 0, _Content = ContentTypes.Documents, }; var success = false; while (!success) { errorCode = await crudApi.Insert(vc); success = errorCode == ErrorCodes.Succes; if (!success) { UnicontaMessageBox.Show( Localization.GetLocalization(Uniconta.Common.Language.Is).Lookup(errorCode.ToString()) + "\nReyna aftur?", // Try again? "Villa við vistun", // Error while saving messageBoxImage: MessageBoxImage.Error, messageBoxButton: MessageBoxButton.YesNo ); } } return(errorCode); }
public bool PreValidate() { if (!Country2Language.IsEU(companyCountryId)) { UnicontaMessageBox.Show(Localization.lookup("AccountCountryNotEu"), Localization.lookup("Warning")); return(false); } if (string.IsNullOrWhiteSpace(companyRegNo)) { UnicontaMessageBox.Show(string.Format(Localization.lookup("MissingOBJ"), Localization.lookup("CompanyRegNo")), Localization.lookup("Warning")); return(false); } return(true); }
async void calc(DateTime fromDate, DateTime toDate) { SetBusy(); var employee = (master as Uniconta.DataModel.Employee)?._Number; var propValuePairList = new List <PropValuePair>() { PropValuePair.GenereteWhereElements("Date", typeof(DateTime), string.Concat(fromDate.ToShortDateString(), "..", toDate.ToShortDateString())), PropValuePair.GenereteWhereElements("Deleted", typeof(int), "0") }; var invoiceHeaders = await api.Query <DebtorInvoiceClient>(dgEmployeeCommissionGrid.masterRecords, propValuePairList); var commlstLine = new List <EmployeeCommissionClient>(1000); var commlstHead = new List <EmployeeCommissionClient>(1000); var commAll = (IEnumerable <EmployeeCommissionClient>)dgEmployeeCommissionGrid.ItemsSource; foreach (var rec in commAll) { if (rec._Disabled) { continue; } if (rec._FromDate != DateTime.MinValue && rec._FromDate > toDate) { continue; } if (rec._ToDate != DateTime.MinValue && rec._ToDate < fromDate) { continue; } if (employee != null && employee != rec._Employee) { continue; } if (rec._PerLine) { commlstLine.Add(rec); } else { commlstHead.Add(rec); } } var sort = new EmployeeCommissionClientSort(); commlstLine.Sort(sort); commlstHead.Sort(sort); var debtors = api.GetCache(typeof(Uniconta.DataModel.Debtor)); var calComs = new List <CalCommissionClient>(); if (commlstLine.Count > 0) { propValuePairList.RemoveAt(1); // remove Deleted propValuePairList.Add(PropValuePair.GenereteWhereElements("MovementType", typeof(int), "1")); var trans = await api.Query <InvTransClient>(dgEmployeeCommissionGrid.masterRecords, propValuePairList); //sandt if (trans != null) { var invItems = api.GetCache(typeof(Uniconta.DataModel.InvItem)); // lets sort invoices so we can find employee on invoice header var invSort = new InvoiceSort(); DebtorInvoiceClient invKey = null; if (invoiceHeaders != null && invoiceHeaders.Length > 0) { Array.Sort(invoiceHeaders, invSort); invKey = new DebtorInvoiceClient(); } foreach (var tran in trans) { var item = tran._Item; var acc = tran._DCAccount; var emp = tran._Employee; string debGroup = null; string itemGroup = null; if (item != null) { var inv = (InvItem)invItems.Get(item); itemGroup = inv?._Group; } if (acc != null) { var deb = (Debtor)debtors.Get(acc); debGroup = deb?._Group; } if (emp == null && invKey != null) { invKey._InvoiceNumber = tran._InvoiceNumber; invKey._DCAccount = tran._DCAccount; invKey._Date = tran._Date; var pos = Array.BinarySearch(invoiceHeaders, invKey, invSort); if (pos >= 0 && pos < invoiceHeaders.Length) { var rec = invoiceHeaders[pos]; emp = tran._Employee = rec._Employee; } } foreach (var c in commlstLine) { var cmp = string.Compare(c._Employee, emp); if (cmp > 0) { break; } if (cmp == 0 && CompareKey(c._Item, item) && CompareKey(c._Account, acc) && CompareKey(c._ItemGroup, itemGroup) && CompareKey(c._DebGroup, debGroup)) { var calculatedCommission = CalculateCommissionInvTran(tran, c); if (calculatedCommission == null || calculatedCommission._Commission == 0) { continue; } calComs.Add(calculatedCommission); if (!c._KeepLooking) { break; } } } } } } if (commlstHead.Count > 0 && invoiceHeaders != null) { foreach (var it in invoiceHeaders) { string debGroup = null; var emp = it._Employee; var acc = it._DCAccount; if (acc != null) { var deb = (Debtor)debtors.Get(acc); debGroup = deb?._Group; } foreach (var c in commlstHead) { var cmp = string.Compare(c._Employee, emp); if (cmp > 0) { break; } if (cmp == 0 && CompareKey(c._Account, acc) && CompareKey(c._DebGroup, debGroup)) { var calculatedCommission = CalculateCommissionDebInvoice(it, c); if (calculatedCommission == null || calculatedCommission._Commission == 0) { continue; } calComs.Add(calculatedCommission); if (!c._KeepLooking) { break; } } } } } ClearBusy(); if (calComs.Count == 0) { UnicontaMessageBox.Show(Localization.lookup("NoRecordExport"), Uniconta.ClientTools.Localization.lookup("Message")); return; } var arr = calComs.ToArray(); Array.Sort(arr, new CalCommissionClientSort()); AddDockItem(TabControls.CalculatedCommissionPage, new object[] { arr }, Uniconta.ClientTools.Localization.lookup("CalculateCommission"), null, true); }
public void Validate(IEnumerable <IntrastatClient> intralst, bool compressed, bool onlyValidate) { var countErr = 0; foreach (var intra in intralst) { var hasErrors = false; intra.SystemInfo = null; if (compressed && intra.Compressed == false) { hasErrors = true; if (intra.SystemInfo == VALIDATE_OK) { intra.SystemInfo = Localization.lookup("CompressPosting"); } else { intra.SystemInfo += Environment.NewLine + Localization.lookup("CompressPosting"); } } if (intra.IsTriangularTrade) { intra.SystemInfo = Localization.lookup("TriangleTrade"); continue; } if (intra.ItemCode == null) { hasErrors = true; intra.SystemInfo += intra.SystemInfo != null ? Environment.NewLine : null; intra.SystemInfo += string.Format(Localization.lookup("OBJisEmpty"), Localization.lookup("TariffNumber")); } else { intra.ItemCode = Regex.Replace(intra.ItemCode, "[^0-9]", ""); } if (intra.ItemCode != null && intra.ItemCode.Length != 8) { hasErrors = true; intra.SystemInfo += intra.SystemInfo != null ? Environment.NewLine : null; intra.SystemInfo += string.Format(Localization.lookup("InvalidValue"), Localization.lookup("TariffNumber"), intra.ItemCode); } if (intra.Country == CountryCode.Unknown) { hasErrors = true; intra.SystemInfo += intra.SystemInfo != null ? Environment.NewLine : null; intra.SystemInfo += intra.SystemInfo + Localization.lookup("CountryNotSet"); } if (intra.Country == companyCountryId) { hasErrors = true; intra.SystemInfo += intra.SystemInfo != null ? Environment.NewLine : null; intra.SystemInfo += intra.SystemInfo + Localization.lookup("OwnCountryProblem"); } if (!Country2Language.IsEU(intra.Country)) { hasErrors = true; intra.SystemInfo += intra.SystemInfo != null ? Environment.NewLine : null; intra.SystemInfo += Localization.lookup("NonEUCountry"); } if (intra.CountryOfOrigin == CountryCode.Unknown && intra._CountryOfOriginUNK == IntraUnknownCountry.None) { hasErrors = true; intra.SystemInfo += intra.SystemInfo != null ? Environment.NewLine : null; intra.SystemInfo += string.Format(Localization.lookup("MissingOBJ"), Localization.lookup("CountryOfOrigin")); } if (intra.InvAmount == 0) { hasErrors = true; intra.SystemInfo += intra.SystemInfo != null ? Environment.NewLine : null; intra.SystemInfo += Localization.lookup("NoValues"); } if (intra.NetWeight == 0 && intra.IntraUnit == 0 && (string.IsNullOrWhiteSpace(intra.ItemCode) || !intra.ItemCode.Contains("99500000"))) { hasErrors = true; intra.SystemInfo += intra.SystemInfo != null ? Environment.NewLine : null; intra.SystemInfo += string.Format(Localization.lookup("MissingOBJ"), Localization.lookup("Weight")); } if (intra.TransType == null) { hasErrors = true; intra.SystemInfo += intra.SystemInfo != null ? Environment.NewLine : null; intra.SystemInfo += Localization.lookup("EmptyTransferType"); } if (!string.IsNullOrWhiteSpace(intra.TransType) && intra.TransType.Length != 2) { hasErrors = true; intra.SystemInfo += intra.SystemInfo != null ? Environment.NewLine : null; intra.SystemInfo += string.Format(Localization.lookup("InvalidValue"), Localization.lookup("TransferType"), intra.TransType); } if (intra.ImportOrExport == ImportOrExportIntrastat.Export) { if (string.IsNullOrWhiteSpace(intra.fDebtorRegNo)) { hasErrors = true; intra.SystemInfo += intra.SystemInfo != null ? Environment.NewLine : null; intra.SystemInfo += string.Format(Localization.lookup("MissingOBJ"), Localization.lookup("DebtorRegNo")); } } if (hasErrors) { countErr++; } else { intra.SystemInfo = VALIDATE_OK; } } }
private List <PaymentStatus> ReadStatusReport(XmlDocument xmlDoc) { this.xmlDoc = xmlDoc; List <PaymentStatus> paymentStatusList = new List <PaymentStatus>(); ns = new XmlNamespaceManager(xmlDoc.NameTable); ns.AddNamespace("ns", XMLNS_ver00200103); var HeaderMsgId = getNodeValue("//ns:Document/ns:CstmrPmtStsRpt/ns:GrpHdr/ns:MsgId"); var HeaderCreatedDate = getNodeValue("//ns:Document/ns:CstmrPmtStsRpt/ns:GrpHdr/ns:CreDtTm"); var HeaderBankID = getNodeValue("//ns:Document/ns:CstmrPmtStsRpt/ns:GrpHdr/ns:InitgPty/ns:Id/ns:OrgId/ns:BICOrBEI"); var HeaderCustomerID = getNodeValue("//ns:Document/ns:CstmrPmtStsRpt/ns:GrpHdr/ns:InitgPty/ns:Id/ns:OrgId/ns:Othr/ns:Id"); var HeaderschmeNmCd = getNodeValue("//ns:Document/ns:CstmrPmtStsRpt/ns:GrpHdr/ns:InitgPty/ns:Id/ns:OrgId/ns:Othr/ns:SchmeNm/ns:Cd"); var HeaderOrigMsgId = getNodeValue("//ns:Document/ns:CstmrPmtStsRpt/ns:OrgnlGrpInfAndSts/ns:OrgnlMsgId"); var HeaderPaymFormat = getNodeValue("//ns:Document/ns:CstmrPmtStsRpt/ns:OrgnlGrpInfAndSts/ns:OrgnlMsgNmId"); var HeaderNumbOfPayments = getNodeValue("//ns:Document/ns:CstmrPmtStsRpt/ns:OrgnlGrpInfAndSts/ns:OrgnlNbOfTxs"); var HeaderGroupStatus = getNodeValue("//ns:Document/ns:CstmrPmtStsRpt/ns:OrgnlGrpInfAndSts/ns:orgnlGrp_GrpSts"); foreach (XmlNode orgnlPmtInfAndSts in xmlDoc.SelectNodes("//ns:Document/ns:CstmrPmtStsRpt/ns:OrgnlPmtInfAndSts", ns)) { paymentStatus = new PaymentStatus(); //Header >> paymentStatus.HeaderMsgId = HeaderMsgId; paymentStatus.HeaderCreatedDate = HeaderCreatedDate; paymentStatus.HeaderBankID = HeaderBankID; paymentStatus.HeaderCustomerID = HeaderCustomerID; paymentStatus.HeaderschmeNmCd = HeaderschmeNmCd; paymentStatus.HeaderOrigMsgId = HeaderOrigMsgId; paymentStatus.HeaderPaymFormat = HeaderPaymFormat; paymentStatus.HeaderNumbOfPayments = HeaderNumbOfPayments; paymentStatus.HeaderGroupStatus = HeaderGroupStatus; //Header << //Trans >> paymentStatus.TransInstrId = getNodeValue(orgnlPmtInfAndSts, "ns:OrgnlPmtInfId"); paymentStatus.TransEndToEndId = getNodeValue(orgnlPmtInfAndSts, "ns:TxInfAndSts/ns:OrgnlEndToEndId"); paymentStatus.TransStatus = getNodeValue(orgnlPmtInfAndSts, "ns:TxInfAndSts/ns:TxSts"); paymentStatus.TransStatusCode = getNodeValue(orgnlPmtInfAndSts, "ns:TxInfAndSts/ns:StsRsnInf/ns:Rsn/ns:Cd"); paymentStatus.TransStatusCodeAdd = getNodeValue(orgnlPmtInfAndSts, "ns:TxInfAndSts/ns:StsRsnInf/ns:AddtlInf"); var amount = getNodeValue(orgnlPmtInfAndSts, "ns:TxInfAndSts/ns:OrgnlTxRef/ns:Amt/ns:InstdAmt"); paymentStatus.TransAmount = Uniconta.Common.Utility.NumberConvert.ToDouble(amount); paymentStatus.TransCcy = getNodeValue(orgnlPmtInfAndSts, "ns:TxInfAndSts/ns:OrgnlTxRef/ns:Amt/ns:InstdAmt", "Ccy"); paymentStatus.TransReqPaymDate = getNodeValue(orgnlPmtInfAndSts, "ns:TxInfAndSts/ns:OrgnlTxRef/ns:ReqdExctnDt"); paymentStatus.TransDbtrName = getNodeValue(orgnlPmtInfAndSts, "ns:TxInfAndSts/ns:OrgnlTxRef/ns:Dbtr/ns:Nm"); paymentStatus.TransDbtrIBAN = getNodeValue(orgnlPmtInfAndSts, "ns:TxInfAndSts/ns:OrgnlTxRef/ns:DbtrAcct/ns:Id/ns:IBAN"); paymentStatus.TransDbtrBIC = getNodeValue(orgnlPmtInfAndSts, "ns:TxInfAndSts/ns:OrgnlTxRef/ns:DbtrAgt/ns:FinInstnId/ns:BIC"); paymentStatus.TransCdtrName = getNodeValue(orgnlPmtInfAndSts, "ns:TxInfAndSts/ns:OrgnlTxRef/ns:Cdtr/ns:Nm"); paymentStatus.TransCdtrBBAN = getNodeValue(orgnlPmtInfAndSts, "ns:TxInfAndSts/ns:OrgnlTxRef/ns:CdtrAcct/ns:Id/ns:Othr/ns:Id"); paymentStatus.TransCdtrIBAN = getNodeValue(orgnlPmtInfAndSts, "ns:TxInfAndSts/ns:OrgnlTxRef/ns:CdtrAcct/ns:Id/ns:IBAN"); paymentStatus.TransCdtrAccType = getNodeValue(orgnlPmtInfAndSts, "ns:TxInfAndSts/ns:OrgnlTxRef/ns:CdtrAcct/ns:Id/ns:Othr/ns:SchmeNm/ns:Cd"); //IBAN, BBAN or OCR //Trans << // Status translation >> switch (paymentStatus.TransStatus) { case PAYMSTATUSID_ACSC: paymentStatus.TransStatusDescriptionShort = Localization.lookup("Paid"); paymentStatus.TransStatusDescription = Localization.lookup("PaymentExecuted"); break; case PAYMSTATUSID_ACSP: paymentStatus.TransStatusDescriptionShort = Localization.lookup("Pending"); paymentStatus.TransStatusDescription = Localization.lookup("PaymentAcceptedBank"); break; case PAYMSTATUSID_RJCT: paymentStatus.TransStatusDescriptionShort = Localization.lookup("Rejected"); paymentStatus.TransStatusDescription = Localization.lookup("PaymentRejectedBank"); break; case PAYMSTATUSID_PDNG: paymentStatus.TransStatusDescriptionShort = Localization.lookup("Pending"); paymentStatus.TransStatusDescription = Localization.lookup("PendingApproval"); break; case PAYMSTATUSID_ACWC: paymentStatus.TransStatusDescriptionShort = Localization.lookup("Pending"); paymentStatus.TransStatusDescription = string.Format("{0}. {1}", Localization.lookup("PaymentAcceptedBank"), Localization.lookup("NoCharges")); break; } // Status translation << paymentStatusList.Add(paymentStatus); } return(paymentStatusList); }