예제 #1
0
        public Payments GetPayment(SaftDTO pFilter)
        {
            List <Payment> receiptsList = new List <Payment>();
            var            Payments     = new Payments();

            try
            {
                bdContext.ComandText = "stp_SAFT_RECEIPTS";
                bdContext.AddParameter("@COMPANY_ID", pFilter.Filial);
                bdContext.AddParameter("@FILE_TYPE", pFilter.FileType);
                bdContext.AddParameter("@DATE_INI", pFilter.DateFrom);
                bdContext.AddParameter("@DATE_TERM", pFilter.DateUntil);
                bdContext.AddParameter("@TRANSACTION_ID", pFilter.SaftID);
                bdContext.AddParameter("@FISCAL_YEAR", pFilter.FiscalYear);

                MySqlDataReader dr = bdContext.ExecuteReader();
                while (dr.Read())
                {
                    if (Payments.NumberOfEntries == 0)
                    {
                        Payments = new Payments
                        {
                            NumberOfEntries = int.Parse(dr[0].ToString()),
                            TotalDebit      = int.Parse(dr[0].ToString()) > 0 ? dr[1].ToString().Replace(",", ".").Replace("-", string.Empty) : "0.00",
                            TotalCredit     = int.Parse(dr[0].ToString()) > 0 ? dr[2].ToString().Replace(",", ".").Replace("-", string.Empty) : "0.00"
                        };
                    }

                    receiptsList.Add(ReceiptDetails(dr, pFilter));
                }
            }
            catch (Exception ex)
            {
            }
            finally
            {
                bdContext.FecharConexao();
                if (receiptsList.Count == 0)
                {
                    Payments = new Payments
                    {
                        TotalCredit = "0.00",
                        TotalDebit  = "0.00",
                    };
                }
                else
                {
                    for (int i = 0; i < receiptsList.Count; i++)
                    {
                        receiptsList[i].PaymentMethod = SetReceiptPaymentMethods(receiptsList[i], pFilter.DateFrom, pFilter.DateUntil);
                        receiptsList[i].Line          = SetPaymentLines(receiptsList[i], pFilter);//.ToArray();
                    }
                }


                Payments.Payment = receiptsList;//.ToArray();
            }

            return(Payments);
        }
예제 #2
0
        private AuditFileBilling GetSaftBillingAuditFile(SaftDTO saft)
        {
            AuditFileBilling dto;

            try
            {
                dto = new AuditFileBilling()
                {
                    Header      = daoAuditFile.GetHeaderInfo(saft),
                    MasterFiles = new MasterFiles/// MasterFilesBilling
                    {
                        Customer = daoAuditFile.GetCustomersList(saft),
                        Product  = daoAuditFile.GetProductList(saft),
                        TaxTable = new TaxTable
                        {
                            TaxTableEntry = daoAuditFile.GetTaxTableEntriesList(saft)
                        },
                    },
                    SourceDocuments = new SourceDocuments //SourceDocumentsBilling
                    {
                        SalesInvoices    = daoBillingAuditFile.GetBillingDocuments(saft),
                        WorkingDocuments = daoBillingAuditFile.GetWorkingDocuments(saft),
                        Payments         = daoBillingAuditFile.GetPayment(saft)
                    },
                };
            }catch (Exception ex)
            {
                dto = new AuditFileBilling();
                string erro = ex.Message;
            }

            return(dto);
        }
예제 #3
0
        public SaftDTO Validar(SaftDTO dto)
        {
            try
            {
                bdContext.ComandText = "stp_SYS_SAFT_EXPORTACAO_VALIDAR";

                bdContext.AddParameter("@SAFT_ID", dto.SaftID);
                bdContext.AddParameter("@BEGIN_DATE", dto.DateFrom);
                bdContext.AddParameter("@END_DATE", dto.DateUntil);
                bdContext.AddParameter("@FILE_TYPE", dto.FileType);
                bdContext.AddParameter("@SAFT_STATUS", dto.Status);
                bdContext.AddParameter("@NOTES", dto.Notes);
                bdContext.AddParameter("@UTILIZADOR", dto.Utilizador);
                bdContext.AddParameter("@COMPANY_ID", dto.Filial);
                bdContext.AddParameter("@FISCAL_YEAR", dto.FiscalYear);

                bdContext.ExecuteNonQuery();
            }
            catch (Exception ex)
            {
                dto.MensagemErro = ex.Message.Replace("'", "");
            }
            finally
            {
                bdContext.FecharConexao();
            }

            return(dto);
        }
예제 #4
0
        private static Payment ReceiptDetails(MySqlDataReader dr, SaftDTO pFilter)
        {
            var payment = new Payment
            {
                PaymentRefNo    = dr[3].ToString(),
                Period          = dr[4].ToString(),
                TransactionID   = pFilter.FileType == "F" ? null : dr[5].ToString(),
                TransactionDate = DateTime.Parse(dr[6].ToString()).ToString("yyyy-MM-dd"),
                PaymentType     = dr[7].ToString().Replace("RE", "RC"),
                Description     = dr[8].ToString(),
                SystemID        = dr[9].ToString(),
                DocumentStatus  = new PaymentsDocumentStatus
                {
                    PaymentStatus     = dr[10].ToString(),
                    PaymentStatusDate = DateTime.Parse(dr[11].ToString()).ToString("yyyy-MM-ddTHH:mm:ss"),
                    Reason            = dr[12].ToString(),
                    SourceID          = dr[13].ToString(),
                    SourcePayment     = dr[14].ToString()
                },
                DocumentTotals = new PaymentsDocumentTotals
                {
                    TaxPayable = dr[15].ToString().Replace(",", ".").Replace("-", string.Empty),
                    NetTotal   = dr[16].ToString().Replace(",", ".").Replace("-", string.Empty),
                    GrossTotal = dr[17].ToString().Replace(",", ".").Replace("-", string.Empty),
                    Settlement = new PaymentsDocumentTotalsSettlement
                    {
                        SettlementAmount = dr[18].ToString().Replace(",", ".").Replace("-", string.Empty)
                    },
                },

                /*WithholdingTax = null new WithholdingTax
                 * {
                 *  WithholdingTaxType = "II",
                 *  WithholdingTaxDescription = "N/A",
                 *  WithholdingTaxAmount = "0.00"
                 * },*/
                PaymentID       = int.Parse(dr[22].ToString()),
                SourceID        = dr[23].ToString(),
                SystemEntryDate = DateTime.Parse(dr[24].ToString()).ToString("yyyy-MM-ddTHH:mm:ss"),
                CustomerID      = dr[25].ToString()
            };

            if (dr[19].ToString() != "AOA")
            {
                payment.DocumentTotals.Currency = new Currency
                {
                    CurrencyCode   = dr[19].ToString(),
                    CurrencyAmount = dr[20].ToString().Replace(",", ".").Replace("-", string.Empty),
                    ExchageRate    = dr[21].ToString().Replace(",", ".").Replace("-", string.Empty)
                };
            }

            return(payment);
        }
예제 #5
0
        public SalesInvoices GetBillingDocuments(SaftDTO pFilter)
        {
            SalesInvoices salesInvoicesResume = new SalesInvoices();

            try
            {
                bdContext.ComandText = "stp_SAFT_SALES_INVOICES_TOTAL_ENTRIES_DEBITS_CREDITS";
                bdContext.AddParameter("@COMPANY_ID", pFilter.Filial);
                bdContext.AddParameter("@FILE_TYPE", pFilter.FileType);
                bdContext.AddParameter("@DATE_INI", pFilter.DateFrom);
                bdContext.AddParameter("@DATE_TERM", pFilter.DateUntil);
                bdContext.AddParameter("@TRANSACTION_ID", pFilter.SaftID);
                bdContext.AddParameter("@FISCAL_YEAR", pFilter.FiscalYear);

                MySqlDataReader dr = bdContext.ExecuteReader();
                if (dr.Read())
                {
                    salesInvoicesResume = new SalesInvoices
                    {
                        NumberOfEntries = dr[0].ToString(),
                        TotalDebit      = dr[1].ToString() != "" ? dr[1].ToString().Replace(",", ".").Replace("-", string.Empty) : "0.00",
                        TotalCredit     = dr[2].ToString() != "" ? dr[2].ToString().Replace(",", ".").Replace("-", string.Empty) : "0.00"
                    };
                }
            }
            catch (Exception ex)
            {
            }
            finally
            {
                bdContext.FecharConexao();
            }

            salesInvoicesResume.Invoice = GetSalesInvoiceList(pFilter);

            if (salesInvoicesResume.Invoice.Count == 0)
            {
                salesInvoicesResume = new SalesInvoices
                {
                    NumberOfEntries = "0",
                    TotalDebit      = "0.00",
                    TotalCredit     = "0.00"
                };
            }



            return(salesInvoicesResume);
        }
예제 #6
0
        public List <SaftDTO> ObterPorFiltro(SaftDTO dto)
        {
            List <SaftDTO> lista = new List <SaftDTO>();

            try
            {
                bdContext.ComandText = "stp_SYS_SAFT_EXPORTACAO_OBTERPORFILTRO";

                bdContext.AddParameter("@SAFT_ID", dto.SaftID);
                bdContext.AddParameter("@BEGIN_DATE", dto.DateFrom);
                bdContext.AddParameter("@END_DATE", dto.DateUntil);
                bdContext.AddParameter("@COMPANY_ID", dto.Filial);
                bdContext.AddParameter("@FILE_TYPE", dto.FileType);
                bdContext.AddParameter("@SAFT_STATUS", dto.Status);

                MySqlDataReader dr = bdContext.ExecuteReader();

                while (dr.Read())
                {
                    dto = new SaftDTO
                    {
                        SaftID      = int.Parse(dr[0].ToString()),
                        DateFrom    = DateTime.Parse(dr[1].ToString()),
                        DateUntil   = DateTime.Parse(dr[2].ToString()),
                        FileType    = dr[3].ToString().ToUpper(),
                        Status      = int.Parse(dr[4].ToString()),
                        Notes       = dr[5].ToString(),
                        CreatedBy   = dr[6].ToString(),
                        CreatedDate = DateTime.Parse(dr[7].ToString()),
                        UpdatedBy   = dr[8].ToString(),
                        UpdatedDate = DateTime.Parse(dr[9].ToString()),
                        Filial      = dr[10].ToString(),
                        FiscalYear  = int.Parse(dr[11].ToString()),
                    };

                    lista.Add(dto);
                }
            }
            catch (Exception ex)
            {
                dto.MensagemErro = ex.Message.Replace("'", "");
            }
            finally
            {
                bdContext.FecharConexao();
            }
            return(lista);
        }
예제 #7
0
        private List <PaymentsLines> SetPaymentLines(Payment dto, SaftDTO pSaft)
        {
            List <PaymentsLines> lista = new List <PaymentsLines>();

            try
            {
                bdContext.ComandText = "stp_SAFT_RECEIPTS_LINES";
                bdContext.AddParameter("@PAYMENT_ID", dto.PaymentID);

                MySqlDataReader dr = bdContext.ExecuteReader();
                while (dr.Read())
                {
                    lista.Add(new PaymentsLines
                    {
                        LineNumber       = dr[0].ToString(),
                        SourceDocumentID = new SourceDocumentID
                        {
                            OriginatingON = dr[1].ToString(),
                            InvoiceDate   = DateTime.Parse(dr[2].ToString()).ToString("yyyy-MM-dd"),
                            //Description = dr[3].ToString(),
                        },
                        SettlementAmount = dr[4].ToString().Replace(",", ""),
                        DebitAmount      = pSaft.FileType == "F" ? null : dr[5].ToString().Replace(",", ""),
                        CreditAmount     = dr[6].ToString().Replace(",", ""),
                        Tax = new Tax
                        {
                            TaxType          = dr[7].ToString(),
                            TaxCountryRegion = dr[8].ToString(),
                            TaxCode          = dr[9].ToString(),
                            TaxPercentage    = dr[10].ToString().Replace(",", "."),
                            TaxAmount        = null, // dr[11].ToString().Replace(",", ".")
                        },
                        TaxExemptionReason = dr[12].ToString(),
                        TaxExemptionCode   = dr[13].ToString(),
                    });
                }
            }
            catch (Exception ex)
            {
                string ErroText = ex.Message;
            }
            finally
            {
                bdContext.FecharConexao();
            }

            return(lista);
        }
예제 #8
0
        public WorkingDocuments GetWorkingDocuments(SaftDTO pFilter)
        {
            WorkingDocuments workingDocuments = new WorkingDocuments();

            try
            {
                bdContext.ComandText = "stp_SAFT_WORKING_DOCUMENTS_TOTAL_ENTRIES_DEBITS_CREDITS";
                bdContext.AddParameter("@COMPANY_ID", pFilter.Filial);
                bdContext.AddParameter("@FILE_TYPE", pFilter.FileType);
                bdContext.AddParameter("@DATE_INI", pFilter.DateFrom);
                bdContext.AddParameter("@DATE_TERM", pFilter.DateUntil);
                bdContext.AddParameter("@TRANSACTION_ID", pFilter.SaftID);
                bdContext.AddParameter("@FISCAL_YEAR", pFilter.FiscalYear);

                MySqlDataReader dr = bdContext.ExecuteReader();
                if (dr.Read())
                {
                    workingDocuments = new WorkingDocuments
                    {
                        NumberOfEntries = dr[0].ToString(),
                        TotalDebit      = dr[1].ToString().Replace(",", ".").Replace("-", string.Empty),
                        TotalCredit     = dr[2].ToString().Replace(",", ".").Replace("-", string.Empty)
                    };
                }
            }
            catch (Exception ex)
            {
            }
            finally
            {
                bdContext.FecharConexao();
                workingDocuments.WorkDocument = GetWorkDocumentList(pFilter);
                if (workingDocuments.NumberOfEntries == null && workingDocuments.WorkDocument.Length == 0)
                {
                    workingDocuments = new WorkingDocuments
                    {
                        NumberOfEntries = "0",
                        TotalDebit      = "0.00", //dr[1].ToString().Replace(",", ".").Replace("-", string.Empty),
                        TotalCredit     = "0.00"  //dr[2].ToString().Replace(",", ".").Replace("-", string.Empty)
                    };
                }
            }


            return(workingDocuments);
        }
예제 #9
0
        public AuditFile AuditeFile(SaftDTO dto)
        {
            HashRN hashRN = new HashRN();

            if (dto.FileType == "F")
            {
                var BillingAuditFile = GetSaftBillingAuditFile(dto);
                hashRN.GenerateInvoicesHash(BillingAuditFile, dto.PrivateKey);
                hashRN.GenerateWorkingDocumentsHash(BillingAuditFile, dto.PrivateKey);

                return(BillingAuditFile);
            }
            else
            {
                return(new AuditFile());
            }
        }
예제 #10
0
        public List <TaxTableEntry> GetTaxTableEntriesList(SaftDTO pFilter)
        {
            List <TaxTableEntry> lista = new List <TaxTableEntry>();

            try
            {
                bdContext.ComandText = "stp_SAFT_TAX_TABLE_ENTRY";
                bdContext.AddParameter("@COMPANY_ID", pFilter.Filial);
                bdContext.AddParameter("@FILE_TYPE", pFilter.FileType);
                bdContext.AddParameter("@DATE_INI", pFilter.DateFrom);
                bdContext.AddParameter("@DATE_TERM", pFilter.DateUntil);
                bdContext.AddParameter("@TRANSACTION_ID", pFilter.SaftID);
                bdContext.AddParameter("@FISCAL_YEAR", pFilter.FiscalYear);

                MySqlDataReader dr = bdContext.ExecuteReader();
                while (dr.Read())
                {
                    var tax = new TaxTableEntry
                    {
                        TaxType           = dr[0].ToString(),
                        TaxCountryRegion  = dr[1].ToString(),
                        TaxCode           = dr[2].ToString(),
                        Description       = dr[3].ToString(),
                        TaxExpirationDate = null, // dr[4].ToString(),
                        TaxPercentage     = dr[5].ToString().Replace(",", "."),
                        TaxAmount         = null  // dr[6].ToString().Replace(",", ".")
                    };

                    lista.Add(tax);
                }
            }
            catch (Exception ex)
            {
            }
            finally
            {
                bdContext.FecharConexao();
            }

            return(lista);
        }
예제 #11
0
        public List <Product> GetProductList(SaftDTO pFilter)
        {
            List <Product> lista = new List <Product>();

            try
            {
                bdContext.ComandText = "stp_SAFT_PRODUCTS";
                bdContext.AddParameter("@COMPANY_ID", pFilter.Filial);
                bdContext.AddParameter("@FILE_TYPE", pFilter.FileType);
                bdContext.AddParameter("@DATE_INI", pFilter.DateFrom);
                bdContext.AddParameter("@DATE_TERM", pFilter.DateUntil);
                bdContext.AddParameter("@TRANSACTION_ID", pFilter.SaftID);
                bdContext.AddParameter("@FISCAL_YEAR", pFilter.FiscalYear);

                MySqlDataReader dr = bdContext.ExecuteReader();
                while (dr.Read())
                {
                    var product = new Product
                    {
                        ProductType        = dr[0].ToString(),
                        ProductCode        = dr[1].ToString(),
                        ProductGroup       = dr[2].ToString(),
                        ProductDescription = dr[3].ToString(),
                        ProductNumberCode  = dr[4].ToString(),
                        CustomsDetails     = null,//dr[5].ToString(),
                        //UNNumber = null,//dr[6].ToString()
                    };

                    lista.Add(product);
                }
            }
            catch (Exception ex)
            {
            }
            finally
            {
                bdContext.FecharConexao();
            }

            return(lista);
        }
예제 #12
0
 public List <SaftDTO> ObterPorFiltro(SaftDTO dto)
 {
     return(daoSaft.ObterPorFiltro(dto));
 }
예제 #13
0
        private List <CustomerInvoice> GetSalesInvoiceList(SaftDTO pFilter)
        {
            List <CustomerInvoice> lista = new List <CustomerInvoice>();

            try
            {
                bdContext.ComandText = "stp_SAFT_SALES_INVOICES";
                bdContext.AddParameter("@COMPANY_ID", pFilter.Filial);
                bdContext.AddParameter("@FILE_TYPE", pFilter.FileType);
                bdContext.AddParameter("@DATE_INI", pFilter.DateFrom);
                bdContext.AddParameter("@DATE_TERM", pFilter.DateUntil);
                bdContext.AddParameter("@TRANSACTION_ID", pFilter.SaftID);
                bdContext.AddParameter("@FISCAL_YEAR", pFilter.FiscalYear);

                MySqlDataReader dr = bdContext.ExecuteReader();
                while (dr.Read())
                {
                    var invoice =
                        new CustomerInvoice
                    {
                        InvoiceNo      = dr[0].ToString(),
                        DocumentStatus = new DocumentStatus
                        {
                            InvoiceStatus     = dr[1].ToString(),
                            InvoiceStatusDate = DateTime.Parse(dr[2].ToString()).ToString("yyyy-MM-ddTHH:mm:ss"),
                            //Reason = dr[3].ToString(),
                            SourceID      = dr[4].ToString(),
                            SourceBilling = dr[5].ToString()
                        },
                        Hash           = dr[6].ToString(),
                        HashControl    = dr[7].ToString(),
                        Period         = dr[8].ToString(),
                        InvoiceDate    = DateTime.Parse(dr[9].ToString()).ToString("yyyy-MM-dd"),
                        InvoiceType    = dr[10].ToString(),
                        SpecialRegimes = new SpecialRegimes
                        {
                            SelfBillingIndicator         = dr[11].ToString(),
                            CashVATSchemeIndicator       = dr[12].ToString(),
                            ThirdPartiesBillingIndicator = dr[13].ToString()
                        },
                        SourceID        = dr[14].ToString(),
                        EACCode         = dr[15].ToString() == "" ? "000" : dr[15].ToString(),
                        SystemEntryDate = DateTime.Parse(dr[16].ToString()).ToString("yyyy-MM-ddTHH:mm:ss"),
                        TransactionID   = pFilter.FileType == "F" ? null : dr[17].ToString(),
                        CustomerID      = dr[18].ToString(),
                        ShipTo          = null /* new ShipTo
                                                * {
                                                * DeliveryID = dr[19].ToString(),
                                                * DeliveryDate = DateTime.Parse(dr[20].ToString() == "" ? dr[16].ToString() : dr[20].ToString()).ToString("yyyy-MM-dd"),
                                                * WarehouseID = dr[21].ToString(),
                                                * LocationID = dr[22].ToString(),
                                                * Address = new Address
                                                * {
                                                * BuildingNumber = dr[23].ToString(),
                                                * StreetName = dr[24].ToString(),
                                                * AddressDetail = dr[25].ToString() == "" ? "N/A" : dr[25].ToString(),
                                                * City = dr[26].ToString(),
                                                * PostalCode = dr[27].ToString(),
                                                * Province = dr[28].ToString(),
                                                * Country = dr[29].ToString()
                                                * }
                                                * }*/,

                        ShipFrom          = null /*new ShipFrom
                                                  * {
                                                  * DeliveryID = dr[30].ToString(),
                                                  * DeliveryDate = DateTime.Parse(dr[31].ToString() == "" ? dr[16].ToString() : dr[31].ToString()).ToString("yyyy-MM-dd"),
                                                  * WarehouseID = dr[32].ToString(),
                                                  * LocationID = dr[33].ToString(),
                                                  * Address = new Address
                                                  * {
                                                  * BuildingNumber = dr[34].ToString(),
                                                  * StreetName = dr[35].ToString(),
                                                  * AddressDetail = dr[36].ToString() == "" ? "N/A" : dr[36].ToString(),
                                                  * City = dr[37].ToString(),
                                                  * PostalCode = dr[38].ToString(),
                                                  * Province = dr[39].ToString(),
                                                  * Country = dr[40].ToString()
                                                  * }
                                                  * }*/,
                        MovementEndTime   = DateTime.Parse(dr[41].ToString()).ToString("yyyy-MM-ddTHH:mm:ss"),
                        MovementStartTime = DateTime.Parse(dr[42].ToString()).ToString("yyyy-MM-ddTHH:mm:ss"),
                        InvoiceID         = int.Parse(dr[43].ToString()),
                        DocumentTotals    = new CustomerInvoiceDocumentTotals
                        {
                            TaxPayable = dr[44].ToString().Replace(",", ".").Replace("-", string.Empty).Replace("-", string.Empty),
                            NetTotal   = dr[45].ToString().Replace(",", ".").Replace("-", string.Empty).Replace("-", string.Empty),
                            GrossTotal = dr[46].ToString().Replace(",", ".").Replace("-", string.Empty).Replace("-", string.Empty),

                            Settlement = new Settlement
                            {
                                SettlementDiscount = "0",
                                SettlementAmount   = "0",
                                SettlementDate     = null,// DateTime.MinValue.ToString("yyyy-MM-dd"),
                                PaymentTerms       = ""
                            },
                        },

                        WithholdingTax = null /*new WithholdingTax
                                               * {
                                               * WithholdingTaxType = "IS",
                                               * WithholdingTaxDescription = "",
                                               * WithholdingTaxAmount = "0",
                                               * }*/,
                    };

                    if (dr[47].ToString() != "AOA")
                    {
                        invoice.DocumentTotals.Currency = new Currency
                        {
                            CurrencyCode   = dr[47].ToString(),
                            CurrencyAmount = dr[48].ToString().Replace(",", ".").Replace("-", string.Empty).Replace("-", string.Empty),
                            ExchageRate    = dr[49].ToString() == "" || dr[49].ToString() == "0" ? "1" : dr[49].ToString().Replace(",", ".").Replace("-", string.Empty).Replace("-", string.Empty)
                        };
                    }
                    if (dr[61].ToString() != "0,00")
                    {
                        string WithholdingType = "IS";
                        if (dr[62].ToString() == "6,50000")
                        {
                            WithholdingType = "II";
                        }
                        else if (dr[62].ToString() == "10,50000")
                        {
                            WithholdingType = "IRT";
                        }

                        invoice.WithholdingTax = new WithholdingTax
                        {
                            WithholdingTaxType        = WithholdingType,
                            WithholdingTaxDescription = dr[62].ToString(),
                            WithholdingTaxAmount      = dr[61].ToString().Replace(",", "."),
                        };
                    }
                    lista.Add(invoice);
                }
            }
            catch (Exception ex)
            {
                string erroEx = ex.Message;
            }
            finally
            {
                bdContext.FecharConexao();
                for (int i = 0; i < lista.Count; i++)
                {
                    var Line = GetCustomesInvoiceLines(lista[i]);
                    lista[i].Line = Line; /*
                                           * var taxBase = Line.Sum(t => decimal.Parse(t.TaxBase.Replace(".", ",")));
                                           *
                                           * decimal TotalNet = decimal.Parse(lista[i].DocumentTotals.NetTotal.Replace(".", ",")), TotalGross = decimal.Parse(lista[i].DocumentTotals.GrossTotal.Replace(".", ",")),
                                           * TotalTax = decimal.Parse(lista[i].DocumentTotals.TaxPayable.Replace(".", ","));
                                           * TotalGross -= TotalTax;
                                           *
                                           * if ( taxBase == 0)
                                           * {
                                           *
                                           *
                                           * lista[i].DocumentTotals = new CustomerInvoiceDocumentTotals
                                           * {
                                           * TaxPayable = taxBase.ToString(),
                                           * NetTotal = TotalNet.ToString().Replace(",", "."),
                                           * GrossTotal = TotalGross.ToString().Replace(",", "."),
                                           * };
                                           * }*/

                    lista[i].DocumentTotals.Payment = GetSalesInvoicePaymentMethods(lista[i]).ToArray();
                }
            }



            return(lista);
        }
예제 #14
0
        public List <Customer> GetCustomersList(SaftDTO pFilter)
        {
            List <Customer> lista = new List <Customer>();

            try
            {
                bdContext.ComandText = "stp_SAFT_CUSTOMERS";
                bdContext.AddParameter("@COMPANY_ID", pFilter.Filial);
                bdContext.AddParameter("@FILE_TYPE", pFilter.FileType);
                bdContext.AddParameter("@DATE_INI", pFilter.DateFrom);
                bdContext.AddParameter("@DATE_TERM", pFilter.DateUntil);
                bdContext.AddParameter("@TRANSACTION_ID", pFilter.SaftID);
                bdContext.AddParameter("@FISCAL_YEAR", pFilter.FiscalYear);

                MySqlDataReader dr = bdContext.ExecuteReader();

                while (dr.Read())
                {
                    var customer = new Customer
                    {
                        CustomerID     = dr[0].ToString(),
                        AccountID      = dr[1].ToString(),
                        CustomerTaxID  = dr[2].ToString(),
                        CompanyName    = dr[3].ToString(),
                        Contact        = dr[4].ToString() == "" ? null : dr[4].ToString(),
                        BillingAddress = new BillingAddress
                        {
                            BuildingNumber = dr[5].ToString() == "" ? null : dr[5].ToString(),
                            StreetName     = dr[6].ToString() == "" ? null : dr[6].ToString(),
                            AddressDetail  = dr[7].ToString() == "" ? "Desconhecido" : dr[7].ToString(),
                            City           = dr[8].ToString() == "" ? "Desconhecido" : dr[8].ToString(),
                            PostalCode     = dr[9].ToString() == "" ? null : dr[9].ToString(),
                            Province       = dr[10].ToString() == "" ? null : dr[10].ToString(),
                            Country        = dr[11].ToString()
                        },

                        ShipToAddress = new ShipToAddress
                        {
                            //BuildingNumber = dr[5].ToString() == "" ? "0" : dr[5].ToString(),
                            //StreetName = dr[6].ToString(),
                            AddressDetail = dr[7].ToString() == "" ? dr[6].ToString() : dr[7].ToString(),
                            City          = dr[8].ToString() == "" ? "Desconhecido" : dr[8].ToString(),
                            //PostalCode = dr[9].ToString() == "" ? "0" : dr[9].ToString(),
                            //Province = dr[10].ToString(),
                            Country = dr[11].ToString()
                        },

                        Telephone            = dr[12].ToString(),
                        Fax                  = dr[13].ToString(),
                        Email                = dr[14].ToString(),
                        Website              = dr[15].ToString(),
                        SelfBillingIndicator = dr[16].ToString()
                    };

                    lista.Add(customer);
                }
            }
            catch (Exception ex)
            {
            }
            finally
            {
                bdContext.FecharConexao();
            }

            return(lista);
        }
예제 #15
0
 public SaftDTO ObterPorPK(SaftDTO dto)
 {
     return(ObterPorFiltro(dto).SingleOrDefault());
 }
예제 #16
0
        private WorkDocument[] GetWorkDocumentList(SaftDTO pFilter)
        {
            List <WorkDocument> lista = new List <WorkDocument>();

            try
            {
                bdContext.ComandText = "stp_SAFT_WORKING_DOCUMENTS";
                bdContext.AddParameter("@COMPANY_ID", pFilter.Filial);
                bdContext.AddParameter("@FILE_TYPE", pFilter.FileType);
                bdContext.AddParameter("@DATE_INI", pFilter.DateFrom);
                bdContext.AddParameter("@DATE_TERM", pFilter.DateUntil);
                bdContext.AddParameter("@TRANSACTION_ID", pFilter.SaftID);
                bdContext.AddParameter("@FISCAL_YEAR", pFilter.FiscalYear);

                MySqlDataReader dr = bdContext.ExecuteReader();
                while (dr.Read())
                {
                    var workDocument = new WorkDocument
                    {
                        DocumentNumber = dr[0].ToString(),
                        DocumentStatus = new WorkingDocumentStatus
                        {
                            WorkStatus     = dr[1].ToString(),
                            WorkStatusDate = DateTime.Parse(dr[2].ToString()).ToString("yyyy-MM-ddTHH:mm:ss"),
                            //Reason = dr[3].ToString(),
                            SourceID      = dr[4].ToString(),
                            SourceBilling = dr[5].ToString()
                        },
                        Hash        = dr[6].ToString(),
                        HashControl = dr[7].ToString(),
                        Period      = dr[8].ToString(),
                        WorkDate    = DateTime.Parse(dr[9].ToString()).ToString("yyyy-MM-dd"),
                        WorkType    = dr[10].ToString().Replace("FP", "PP").Replace("NP", "PP").Replace("ORT", "OR").Replace("EC", "NE").Replace("ECL", "NE"),

                        SourceID        = dr[11].ToString(),
                        EACCode         = null,//dr[12].ToString(),
                        SystemEntryDate = DateTime.Parse(dr[13].ToString()).ToString("yyyy-MM-ddTHH:mm:ss"),
                        TransactionID   = pFilter.FileType == "F" ? null : dr[14].ToString(),
                        CustomerID      = dr[15].ToString(),
                        WorkID          = int.Parse(dr[16].ToString()),
                        DocumentTotals  = new WorkingDocumentsTotals
                        {
                            TaxPayable = dr[17].ToString().Replace(",", ".").Replace("-", string.Empty),
                            NetTotal   = dr[18].ToString().Replace(",", ".").Replace("-", string.Empty),
                            GrossTotal = dr[19].ToString().Replace(",", ".").Replace("-", string.Empty),
                            Currency   = new Currency
                            {
                                CurrencyCode   = dr[20].ToString(),
                                CurrencyAmount = Math.Round(decimal.Parse(dr[21].ToString()), 2).ToString().Replace(",", ".").Replace("-", string.Empty),
                                ExchageRate    = dr[22].ToString().Replace(",", ".").Replace("-", string.Empty)
                            },
                        },
                    };

                    if (dr[20].ToString() == "AOA")
                    {
                        workDocument.DocumentTotals.Currency = null;
                    }

                    lista.Add(workDocument);
                }
            }
            catch (Exception ex)
            {
            }
            finally
            {
                bdContext.FecharConexao();
                for (int i = 0; i < lista.Count; i++)
                {
                    lista[i].Line = GetWorkDocumentListLines(lista[i]);//.ToArray();
                }
            }



            return(lista.ToArray());
        }
예제 #17
0
 public void Gravar(SaftDTO dto)
 {
     daoSaft.Adicionar(dto);
 }
예제 #18
0
 public void Validar(SaftDTO dto)
 {
     daoSaft.Validar(dto);
 }
예제 #19
0
        public Header GetHeaderInfo(SaftDTO pFilter)
        {
            Header header = new Header();

            try
            {
                bdContext.ComandText = "stp_SAFT_HEADER";
                bdContext.AddParameter("@COMPANY_ID", pFilter.Filial);
                bdContext.AddParameter("@FILE_TYPE", pFilter.FileType);
                bdContext.AddParameter("@DATE_INI", pFilter.DateFrom);
                bdContext.AddParameter("@DATE_TERM", pFilter.DateUntil);
                bdContext.AddParameter("@FISCAL_YEAR", pFilter.FiscalYear);

                MySqlDataReader dr = bdContext.ExecuteReader();

                if (dr.Read())
                {
                    header.AuditFileVersion      = dr[1].ToString();
                    header.CompanyID             = dr[2].ToString();
                    header.TaxRegistrationNumber = dr[3].ToString();
                    header.TaxAccountingBasis    = dr[4].ToString();
                    header.CompanyName           = dr[5].ToString();
                    header.BusinessName          = dr[6].ToString();
                    header.CompanyAddress        = new CompanyAddress
                    {
                        BuildingNumber = dr[7].ToString() == "" ? null : dr[7].ToString(),
                        StreetName     = dr[8].ToString() == "" ? null : dr[8].ToString(),
                        AddressDetail  = dr[9].ToString(),
                        City           = dr[10].ToString(),
                        PostalCode     = dr[11].ToString() == "" ? null : dr[11].ToString(),
                        Province       = dr[12].ToString() == "" ? null : dr[12].ToString(),
                        Country        = dr[13].ToString()
                    };
                    header.FiscalYear               = dr[14].ToString();
                    header.StartDate                = DateTime.Parse(dr[15].ToString()).ToString("yyyy-MM-dd");
                    header.EndDate                  = DateTime.Parse(dr[16].ToString()).ToString("yyyy-MM-dd");
                    header.CurrencyCode             = dr[17].ToString();
                    header.DateCreated              = DateTime.Parse(dr[18].ToString()).ToString("yyyy-MM-dd");
                    header.TaxEntity                = dr[19].ToString();
                    header.ProductCompanyTaxID      = dr[20].ToString();
                    header.SoftwareValidationNumber = "143/AGT/2019";                                              //dr[21].ToString()== "" ? "143/AGT/2019" : dr[21].ToString();
                    header.ProductID                = "KitandaSoft GE/GC LUCAN - PRESTACAO DE SERVICOS (SU), LDA"; //dr[22].ToString() == "" ? "KITANDASOFT GE" : dr[22].ToString();
                    header.ProductVersion           = dr[23].ToString();
                    header.HeaderComment            = dr[24].ToString();
                    header.Telephone                = dr[25].ToString();
                    header.Fax     = dr[26].ToString();
                    header.Email   = dr[27].ToString();
                    header.Website = dr[28].ToString();
                }
            }
            catch (Exception ex)
            {
                //header.MensagemErro = ex.Message.Replace("'", "");
            }
            finally
            {
                bdContext.FecharConexao();
            }

            return(header);
        }