private static string generateInvoiceNumberFromInvoice(InvoiceModel invoice) { string[] time = invoice.time.Split(':'); string[] date = invoice.date.Split('-'); // YYYY-mm-dd return (date[0].Substring(2))+ date[1]+ date[2] + time[0] + time[1]; // return DateTime.Now.ToString("MMddssffff"); }
private static void addBillingInfoToInvoiceFromCells(InvoiceModel invoice, string[] cells) { invoice.city = cells[6]; invoice.street = cells[4]; //invoice.vat_number = cells[16]; invoice.postal_code = cells[8]; }
public static Dictionary<string, InvoiceModel> CreateRecurlyInvoices(List<string> contentOfFiles) { RatesHistoryModel ratesHistory = new RatesHistoryModel(); Dictionary<String, InvoiceModel> invoices = new Dictionary<string, InvoiceModel>(); String invoicesRecurly = getBasicInvoicesFromFiles(contentOfFiles); String accountsRecurly = getAccountsFromFiles(contentOfFiles); String billingsRecurly = getBillingsFromFiles(contentOfFiles); if (invoicesRecurly == null) { CSVtoXMLExporter.WarningMessage += "Nepodarilo sa najst invoices subor! "; return null; }; if (accountsRecurly == null) { CSVtoXMLExporter.WarningMessage += "Nepodarilo sa najst accounts subor! "; return null; }; if (billingsRecurly == null) { CSVtoXMLExporter.WarningMessage += "Nepodarilo sa najst billings subor! "; return null; }; string[] lines = CSVSplitter.SplitCsvToLines(invoicesRecurly); for (int i = 1; i < lines.Length; ++i) { var cells = CSVSplitter.SplitCsvLineToCells(lines[i]); InvoiceModel invoice = new InvoiceModel(); invoice = recurlyBasicInvoiceFromCells(invoice, cells); if ((invoice != null) && (invoice.line_item_total >= 0)) { invoice.rate = ratesHistory.getRateForDate(invoice.date, invoice.currency); if (!invoices.ContainsKey(invoice.id) && (!invoice.status.Equals("open"))) { invoices.Add(invoice.id, invoice); } } } lines = CSVSplitter.SplitCsvToLines(accountsRecurly); for (int i = 1; i < lines.Length; ++i) { var cells = CSVSplitter.SplitCsvLineToCells(lines[i]); var acc_id = cells[0]; InvoiceModel invoiceWithSameAccID = getInvoiceFromInvoicesByAccountId(invoices, acc_id); if (invoiceWithSameAccID != null) { addAccountInfoToInvoiceFromCells(invoiceWithSameAccID, cells); } } lines = CSVSplitter.SplitCsvToLines(billingsRecurly); for (int i = 1; i < lines.Length; ++i) { var cells = CSVSplitter.SplitCsvLineToCells(lines[i]); var acc_id = cells[0]; InvoiceModel invoiceWithSameAccID = getInvoiceFromInvoicesByAccountId(invoices, acc_id); if (invoiceWithSameAccID != null) { addBillingInfoToInvoiceFromCells(invoiceWithSameAccID, cells); } } return invoices; }
private static void addPayPalAccountInfoToInvoiceFromCells(InvoiceModel invoice, string[] cells) { invoice.plan_code = cells[1]; invoice.line_item_start_date = cells[3].Substring(0, 10); invoice.line_item_end_date = cells[4].Substring(0, 10); if(cells[5].Length > 1 && cells[6].Length > 1) invoice.account_name = cells[5] + " " + cells[6]; invoice.company = cells[7].Replace("&", "&"); invoice.street = cells[9].Replace("&", "&"); invoice.city = cells[10].Replace("&", "&"); invoice.postal_code = cells[11]; invoice.purchase_country = cells[12]; }
private static void addAccountInfoToInvoiceFromCells(InvoiceModel invoice, string[] cells) { invoice.company = cells[3].Replace("&", "&"); ; }
private static InvoiceModel recurlyBasicInvoiceFromCells(InvoiceModel invoice, string[] cells) { if (invoice == null) { invoice = new InvoiceModel(); } invoice.id = cells[0]; invoice.account_code = cells[1]; invoice.account_name = cells[2]; invoice.invoice_number = cells[3]; invoice.subscription_id = cells[4]; invoice.plan_code = cells[5]; invoice.coupon_code = cells[6]; invoice.total = Convert.ToDecimal(cells[7].Replace('.', ',')); invoice.subtotal = Convert.ToDecimal(cells[8].Replace('.', ',')); invoice.vat_amount = cells[9]; invoice.currency = cells[10]; invoice.date = cells[11].Substring(0, 10); invoice.status = cells[12]; if (invoice.status.Equals("open")) { return null; } invoice.closed_at = cells[13].Length > 10 ? cells[13].Substring(0, 10) : invoice.date; invoice.purchase_country = cells[14]; invoice.vat_number = cells[15]; invoice.line_item_total = Convert.ToDecimal(cells[16].Replace('.', ',')); invoice.line_item_description = cells[17]; invoice.line_item_origin = cells[18]; invoice.line_item_product_code = cells[19]; invoice.line_item_accounting_code = cells[20]; invoice.line_item_start_date = cells[21].Substring(0, 10); invoice.line_item_end_date = cells[21].Substring(0, 10); invoice.net_terms = cells[23]; invoice.po_number = cells[24]; invoice.collection_method = cells[25]; invoice.line_item_uuid = cells[26]; return invoice; }
private static InvoiceModel paypalInvoiceFromCells(string[] cells) { if (!isItemIDInPayPalCellAllowed(cells[20])) return null; //itemId identifikator InvoiceModel invoice = new InvoiceModel(); string[] date = cells[0].Split('/'); if (date[0].Length == 1) date[0] = "0"+date[0]; if (date[1].Length == 1) date[1] = "0" + date[1]; invoice.date = date[2] + '-' + date[0] + '-' + date[1];//date invoice.account_name = cells[3]; invoice.closed_at = invoice.date; invoice.time = cells[1]; // time invoice.account_name = cells[3]; //name invoice.currency = cells[7]; //currency invoice.total = Convert.ToDecimal(cells[8]); //gross invoice.subtotal = Convert.ToDecimal(cells[10]); // Net invoice.email = cells[12]; // from email invoice.email_to = cells[13]; // to email invoice.transactionId = cells[14]; //Transaction ID invoice.line_item_description = cells[19]; //item title invoice.invoice_number = invoice.transactionId; return invoice; }