Пример #1
0
 private static void ImportContacts()
 {
     Console.WriteLine("Importing contacts:");
     subjectIdMap = new Dictionary <int, int>();
     using (var dc = new InvoicingEntities()) {
         foreach (var c in dc.Contacts)
         {
             try {
                 Console.Write("  #{0}: {1}...", c.ContactId, c.CompanyName);
                 var newSubject = new JsonSubject {
                     bank_account    = c.BankAccountNumber,
                     city            = c.DefaultBillAddress.City,
                     country         = c.DefaultBillAddress.Country,
                     custom_id       = c.ContactId.ToString(),
                     email           = c.ContactEmail,
                     full_name       = c.ContactName,
                     name            = c.CompanyName,
                     phone           = c.ContactMobile,
                     registration_no = c.ICO,
                     street          = c.DefaultBillAddress.Street,
                     vat_no          = c.DIC,
                     zip             = c.DefaultBillAddress.ZIP
                 };
                 var newId = context.Subjects.Create(newSubject);
                 Console.WriteLine("OK, ID={0}", newId);
                 subjectIdMap.Add(c.ContactId, newId);
             }
             catch (FakturoidException) {
                 Console.WriteLine("Failed!");
             }
         }
     }
 }
Пример #2
0
        private static void ImportInvoices()
        {
            Console.WriteLine("Importing invoices:");
            using (var dc = new InvoicingEntities()) {
                foreach (var i in dc.Invoices)
                {
                    // Compute invoice number
                    var invoiceNumber = string.Format("{0}01{1:00000}", i.DateTaxed.Year - 1980, i.SeqId);

                    // Map old contact ID to new
                    var subjectId = subjectIdMap[i.ContactId];
                    Console.Write("  #{0}: {1}...", i.InvoiceId, invoiceNumber);

                    // Create new invoice entity
                    var newInvoice = new JsonInvoice {
                        number     = invoiceNumber,
                        subject_id = subjectId,
                        issued_on  = i.DateCreated,
                        taxable_fulfillment_due = i.DateTaxed,
                        due_on = i.DateDue,
                        lines  = new List <JsonInvoiceLine>()
                    };

                    // Add invoice items
                    foreach (var l in i.Items)
                    {
                        newInvoice.lines.Add(new JsonInvoiceLine {
                            name       = l.Name,
                            quantity   = l.Quantity,
                            unit_name  = l.Unit,
                            unit_price = l.UnitPrice,
                            vat_rate   = l.Tax
                        });
                    }

                    // Create invoice
                    var newInvoiceId = context.Invoices.Create(newInvoice);
                    Console.WriteLine("OK, ID={0}", newInvoiceId);

                    // Get payment status
                    if (i.Payments.Any())
                    {
                        Console.Write("  #{0}: Updating payment status...", i.InvoiceId);
                        var datePaid = i.Payments.Max(x => x.DateReceived);
                        context.Invoices.SetPaymentStatus(newInvoiceId, InvoicePaymentStatus.Paid, datePaid);
                    }
                    else
                    {
                        Console.Write("  #{0}: Updating delivery status...", i.InvoiceId);
                        context.Invoices.SendMessage(newInvoiceId, InvoiceMessageType.NoMessage);
                    }
                    Console.WriteLine("OK");
                }
            }
        }