示例#1
0
        public void dataaccess_select_voucher_lines()
        {
            var list = DEMARDataAccess.SelectVoucherLines(250, 21627943);

            foreach (var l in list)
            {
                Debug.WriteLine("=========================================");
                Debug.WriteLine(l.vl_line_number, "vl_line_number");
                Debug.WriteLine(l.vl_pp_excl_vat, "vl_pp_excl_vat");
                Debug.WriteLine(l.vl_pp_incl_vat, "vl_pp_incl_vat");
                Debug.WriteLine(l.vl_pp_vat, "vl_pp_vat");
                Debug.WriteLine(l.vl_quantity, "vl_quantity");
                Debug.WriteLine(l.vl_unit_price, "vl_unit_price");
            }
        }
示例#2
0
 /// <summary>
 /// Process all (Safe)
 /// </summary>
 /// <remarks>Safe</remarks>
 public void ProcessAll()
 {
     try
     {
         var list = DEMARDataAccess.SelectAllDistinctHOs(m_Iso);
         foreach (var hoId in list)
         {
             ProcessOne(hoId);
         }
     }
     catch (Exception ex2)
     {
         FireError(ex2);
     }
 }
示例#3
0
        public void dataaccess_select_voucher()
        {
            var v = DEMARDataAccess.SelectVoucher(250, 21627943);

            Debug.WriteLine("=========================================");
            Debug.WriteLine(v.v_number, "v_number");
            Debug.WriteLine(v.v_date_voucher, "v_date_voucher");
            Debug.WriteLine(v.ho_vat_number, "ho_vat_number");
            Debug.WriteLine(v.br_id, "vl_pp_vat");
            Debug.WriteLine(v.br_name, "br_name");
            Debug.WriteLine(v.br_add_1, "br_add_1");
            Debug.WriteLine(v.br_add_2, "br_add_2");
            Debug.WriteLine(v.br_add_3, "br_add_3");
            Debug.WriteLine(v.br_add_4, "br_add_4");
            Debug.WriteLine(v.br_add_5, "br_add_5");
        }
示例#4
0
        public void Process(DateTime date)
        {
            DateTime from = date.Date;
            DateTime to   = from.AddDays(1);

            Trace.WriteLine(string.Format("Exporting from {0:dd-MM-yyyy}\t to {1:dd-MM-yyyy}", from, to), "DEMAT");

            try
            {
                var result = DEMARDataAccess.SelectAllRetailersToReport(from, to);

                var b = new BDV_RetailerInfoBuilder();
                foreach (var r in result)
                {
                    b.AddRetailer(r.dmh_br_id, r.dmh_br_DEMAT_contract_date,
                                  r.dmh_br_DEMAT_contact_email,
                                  r.dmh_br_enable_DEMAT_export);
                }

                var fileName     = b.CreateFileName(0);
                var fullFileName = Path.Combine(ExportDirectory, fileName);
                var xml          = b.CreateXML();

                if (File.Exists(fullFileName))
                {
                    File.Delete(fullFileName);
                }

                File.WriteAllText(fullFileName, xml);
            }
            catch (Exception ex)
            {
                FireError(ex);
            }
            finally
            {
                Trace.WriteLine("", "DEMAT");
                Thread.Yield();
            }
        }
示例#5
0
 public void dataaccess_logging()
 {
     DEMARDataAccess.LogVoucherExported("FintraxDEMATService", 250, 123456, "testTESTtest");
 }
示例#6
0
 public void dataaccess_set_voucher_sent()
 {
     DEMARDataAccess.SetVoucherSentToDemat(250, 21627943);
 }
示例#7
0
        /// <summary>
        /// Process one (Safe)
        /// </summary>
        /// <param name="date"></param>
        /// <param name="valid"></param>
        /// <remarks>Safe</remarks>
        public void ProcessOne(int hoId)
        {
            Trace.WriteLine(string.Format("Processing ISOID: {0}\t HOID: {1}", m_Iso, hoId), Strings.DEMAT);
            try
            {
                var list = DEMARDataAccess.SelectAllVouchersToExport(m_Iso, hoId);

                foreach (var g in list.GroupBy(i => i.v_br_id))
                {
                    //Disqualified vouchers would probably have a v_status_id 10, 12, 17, 18, 26, 27, 35
                    foreach (var item in g)
                    {
                        Trace.WriteLine(string.Format("Exporting HOID: {0} BRID: {1} VID: {2} Type: {3}", hoId, item.v_br_id, item.v_number, item.isValid ? "VALID" : "VOID"), Strings.DEMAT);
                        try
                        {
                            var v = DEMARDataAccess.SelectVoucher(m_Iso, item.v_number);

                            var b = new BDV_InvoiceBuilder(item.isValid);

                            b.SetBuyer("Premier Tax Free", "", "33-35 Rue Rennequin", "", "", "Paris", "75017", "FR50377627641");
                            b.SetError("");

                            b.SetRetailer(v.br_id, v.br_name, "",
                                          v.br_add_1 ?? " ",
                                          v.br_add_2 ?? " ",
                                          v.br_add_4 ?? " ",
                                          v.br_add_3 ?? " ",
                                          v.br_add_5 ?? " ",
                                          //TRS_DEMAT_024	Due to that the value of “Retailer_VATNumber “ is the VATNumber of the HO into the TRS, All HO must have a VATNumber.
                                          v.ho_vat_number);
                            b.SetVoucherDetails(v.v_number, v.v_date_voucher);

                            string name = string.Concat(v.v_title, " ", v.v_firstname, " ", v.v_lastname).Trim();

                            var refund_currency = DEMARDataAccess.GetRefundCurrency(m_Iso, v.v_number);

                            b.SetTouristDetails(name,
                                                v.v_final_country,
                                                v.v_passport_no,
                                                refund_currency.GetValueOrDefault(),
                                                refund_currency.HasValue,
                                                v.v_refund_str);

                            var lines = DEMARDataAccess.SelectVoucherLines(m_Iso, item.v_number);

                            #region SAMPLE_LINES

                            /// vl_line_number	vl_unit_price	vl_quantity	vl_pp_excl_vat	vl_pp_vat	vl_pp_incl_vat
                            /// 1	            7.50	            1	        6.17	        1.33	    7.50
                            /// 2	            7.50	            1	        6.17	        1.33	    7.50
                            /// 3	            7.50	            1	        6.17	        1.33	    7.50
                            /// 4	            7.50	            1	        6.17	        1.33	    7.50
                            /// 5	            7.50	            6	        37.04	        7.96	    45.00

                            #endregion //SAMPLE_LINES

                            //NOTE: Make sure the InvoiceTotal adds up to the line items total purchase price and also individual VAT rates totalpurchase price

                            var vatrates = DEMARDataAccess.GetVATRatesByCountryAndDate(m_Iso, v.v_date_voucher);
                            if (vatrates.Count == 0)
                            {
                                throw new ApplicationException("No vat rates. Country: {0} Date: {1}".format(m_Iso, v.v_date_voucher));
                            }

                            foreach (var vl in lines)
                            {
                                var vlvat = vatrates[(DEMARDataAccess.VatRates)vl.vl_code_ttc];

                                b.SetVoucherLine(
                                    vl.vl_line_number.ToString(),
                                    vl.vl_product,
                                    vl.vl_unit_price,
                                    vl.vl_quantity.ToString(),
                                    vlvat,//<--Rate
                                    vl.vl_pp_excl_vat,
                                    vl.vl_pp_incl_vat,
                                    vl.vl_pp_vat);
                            }

                            //Rate - It should be in numerical value and not N, L, H, O
                            foreach (var gvat in lines.GroupBy(vl => vl.vl_code_ttc))
                            {
                                var vat                = gvat.Key;
                                var vlvat              = vatrates[(DEMARDataAccess.VatRates)vat];
                                var sum_vl_pp_vat      = gvat.Sum(vl => vl.vl_pp_vat);
                                var sum_vl_pp_excl_vat = gvat.Sum(vl => vl.vl_pp_excl_vat);
                                var sum_vl_pp_incl_vat = gvat.Sum(vl => vl.vl_pp_incl_vat);
                                b.SetTotalPerVAT(vlvat, sum_vl_pp_vat, sum_vl_pp_excl_vat, sum_vl_pp_incl_vat);
                            }
                            b.SetInvoiceTotal(lines.Sum(vl => vl.vl_pp_incl_vat));

                            var xml          = b.CreateXML();
                            var fileName     = b.CreateFileName(++v.br_DEMAT_export_number);//++count//
                            var fullFileName = Path.Combine(ExportDirectory, fileName);

                            using (TransactionScope tran = new TransactionScope())
                            {
                                if (File.Exists(fullFileName))
                                {
                                    File.Delete(fullFileName);
                                }

                                File.WriteAllText(fullFileName, xml);

                                DEMARDataAccess.SetVoucherSentToDemat(m_Iso, item.v_number);

                                DEMARDataAccess.SaveDEMATExportID(m_Iso, item.v_br_id, v.br_DEMAT_export_number);

                                Trace.WriteLine(fileName, Strings.DEMAT);
                                var message = string.Concat("P1 Voucher exported successfully. Export filename ", fileName);
                                DEMARDataAccess.LogVoucherExported("FintraxDEMATService", m_Iso, item.v_number, message);

                                tran.Complete();
                            }
                        }
                        catch (Exception ex1)
                        {
                            FireError(ex1);
                        }
                        finally
                        {
                            Trace.WriteLine("", Strings.DEMAT);
                            Thread.Yield();
                        }
                    }
                }
            }
            catch (Exception ex2)
            {
                FireError(ex2);
            }
            finally
            {
                Trace.WriteLine("", Strings.DEMAT);
                Thread.Yield();
            }
        }
示例#8
0
 public void ZeroExportNumbers()
 {
     DEMARDataAccess.ZeroInvoiceNumbers(m_Iso);
 }