Beispiel #1
0
        private static Boolean AreContractsActive(DataConnector connector, MailingDTO mailing)
        {
            Boolean active;

            ContractDAO     contractDAO     = new ContractDAO(connector.MySqlConnection);
            ContractItemDAO contractItemDAO = new ContractItemDAO(connector.MySqlConnection);

            // Faturamento de um contrato apenas
            if (mailing.codigoContrato != 0)
            {
                ContractDTO contract = contractDAO.GetContract(mailing.codigoContrato);
                active = (contract.status != 3) && (contract.status != 4);
                return(active);
            }

            // Caso contrário é o faturamento de todos os equipamentos do cliente (um ou mais contratos)
            active = false;
            List <ContractItemDTO> itemList = contractItemDAO.GetItems("businessPartnerCode = '" + mailing.businessPartnerCode + "'");

            foreach (ContractItemDTO item in itemList)
            {
                ContractDTO contract = contractDAO.GetContract(item.contrato_id);
                if ((contract.status != 3) && (contract.status != 4))
                {
                    active = true;
                }
            }
            return(active);
        }
Beispiel #2
0
        private static MailMessage MountBusinessPartnerBilling(DataConnector connector, String businessPartnerCode, Boolean enviarDemonstrativo)
        {
            ContractDAO     contractDAO     = new ContractDAO(connector.MySqlConnection);
            SubContractDAO  subContractDAO  = new SubContractDAO(connector.MySqlConnection);
            ContractItemDAO contractItemDAO = new ContractItemDAO(connector.MySqlConnection);
            EquipmentDAO    equipmentDAO    = new EquipmentDAO(connector.SqlServerConnection);

            List <ContractItemDTO> itemList = contractItemDAO.GetItems("businessPartnerCode = '" + businessPartnerCode + "'");
            Dictionary <int, List <ContractItemDTO> > itemGroups = new Dictionary <int, List <ContractItemDTO> >();

            foreach (ContractItemDTO item in itemList)
            {
                // Cria um novo grupo caso não encontre um grupo para este subcontrato
                if (!itemGroups.ContainsKey(item.subContrato_id))
                {
                    itemGroups.Add(item.subContrato_id, new List <ContractItemDTO>());
                }

                // Adiciona o item ao grupo do subcontrato
                List <ContractItemDTO> group = itemGroups[item.subContrato_id];
                group.Add(item);
            }

            String billingInfo = "Cliente: " + ObterNomeCliente(connector, businessPartnerCode) + "<br/><br/>";

            foreach (int subContractId in itemGroups.Keys)
            {
                List <ContractItemDTO> group = itemGroups[subContractId];
                String itemEnumeration       = "";
                foreach (ContractItemDTO contractItem in group)
                {
                    if (!String.IsNullOrEmpty(itemEnumeration))
                    {
                        itemEnumeration += ", ";
                    }
                    itemEnumeration += contractItem.codigoCartaoEquipamento;
                }
                List <EquipmentDTO> equipamentList = equipmentDAO.GetEquipments(itemEnumeration);
                String equipmentEnumeration        = "";
                foreach (EquipmentDTO equipment in equipamentList)
                {
                    if (!String.IsNullOrEmpty(equipmentEnumeration))
                    {
                        equipmentEnumeration += ", ";
                    }
                    equipmentEnumeration += equipment.ManufSN;
                }
                SubContractDTO subContract    = subContractDAO.GetSubContract(subContractId);
                ContractDTO    contract       = contractDAO.GetContract(subContract.contrato_id);
                Boolean        activeContract = true;
                if ((contract.status == 3) || (contract.status == 4))
                {
                    activeContract = false;
                }
                if (activeContract) // Não fatura caso o status do contrato seja finalizado ou cancelado
                {
                    String   parcela         = ObterParcelaContrato(connector, contract);
                    String   vendedor        = ObterNomeVendedor(connector, contract);
                    DateTime dataVencimento  = MountDate(contract.diaVencimento, contract.referencialVencimento);
                    String   contractInfo    = "Contrato: " + contract.numero + "<br/>" + "Parcela: " + parcela + "<br/>" + "Vendedor: " + vendedor + "<br/>" + "Data Vencimento: " + dataVencimento.ToString("dd/MM/yyyy") + "<br/>";
                    String   subContractInfo = subContract.siglaTipo + " - " + equipmentEnumeration + "<br/>";
                    billingInfo += contractInfo + subContractInfo + "<br/>";
                }
            }

            List <String> reportFiles = new List <String>();

            if (enviarDemonstrativo)
            {
                reportFiles = BuildReportFiles("faturamentoCliente.php", "businessPartnerCode=" + businessPartnerCode);
            }

            MailMessage mailMessage = new MailMessage();

            mailMessage.Subject = "Faturamento de contrato";
            mailMessage.Body    = "Email gerado automaticamente, não responder." + "<br/><br/>" + billingInfo;
            foreach (String filename in reportFiles)
            {
                mailMessage.Attachments.Add(new Attachment(filename));
            }

            return(mailMessage);
        }
Beispiel #3
0
        private static MailMessage MountContractBilling(DataConnector connector, int contractId, int subContractId, Boolean enviarDemonstrativo)
        {
            ContractDAO     contractDAO     = new ContractDAO(connector.MySqlConnection);
            SubContractDAO  subContractDAO  = new SubContractDAO(connector.MySqlConnection);
            ContractItemDAO contractItemDAO = new ContractItemDAO(connector.MySqlConnection);
            EquipmentDAO    equipmentDAO    = new EquipmentDAO(connector.SqlServerConnection);

            ContractDTO           contract        = contractDAO.GetContract(contractId);
            String                contractItems   = "";
            List <SubContractDTO> subContractList = subContractDAO.GetSubContracts("contrato_id=" + contract.id);

            foreach (SubContractDTO subContract in subContractList)
            {
                List <ContractItemDTO> itemList = contractItemDAO.GetItems("subcontrato_id = " + subContract.id);
                String equipmentEnumeration     = "";
                foreach (ContractItemDTO contractItem in itemList)
                {
                    if (!String.IsNullOrEmpty(equipmentEnumeration))
                    {
                        equipmentEnumeration += ", ";
                    }
                    equipmentEnumeration += contractItem.codigoCartaoEquipamento;
                }
                List <EquipmentDTO> equipamentList = equipmentDAO.GetEquipments(equipmentEnumeration);
                String serialNumbers = "";
                foreach (EquipmentDTO equipment in equipamentList)
                {
                    if (!String.IsNullOrEmpty(serialNumbers))
                    {
                        serialNumbers += ", ";
                    }
                    serialNumbers += equipment.ManufSN;
                }
                if (String.IsNullOrEmpty(serialNumbers))
                {
                    serialNumbers = "Nenhum item encontrado";
                }
                contractItems += subContract.siglaTipo + " - " + serialNumbers + "<br/>";
            }

            String   cliente        = ObterNomeCliente(connector, contract.pn);
            String   parcela        = ObterParcelaContrato(connector, contract);
            String   vendedor       = ObterNomeVendedor(connector, contract);
            DateTime dataVencimento = MountDate(contract.diaVencimento, contract.referencialVencimento);
            String   billingInfo    = "Contrato: " + contract.numero + "<br/>" + "Itens: " + contractItems + "<br/>" + "Cliente: " + cliente + "<br/>" + "Parcela: " + parcela + "<br/>" + "Vendedor: " + vendedor + "<br/>" + "Data Vencimento: " + dataVencimento.ToString("dd/MM/yyyy") + "<br/>";

            List <String> reportFiles = new List <String>();

            if (enviarDemonstrativo)
            {
                reportFiles = BuildReportFiles("faturamentoContrato.php", "contractId=" + contractId + "&subContractId=" + subContractId);
            }

            MailMessage mailMessage = new MailMessage();

            mailMessage.Subject = "Faturamento de contrato";
            mailMessage.Body    = "Email gerado automaticamente, não responder." + "<br/><br/>" + billingInfo;
            foreach (String filename in reportFiles)
            {
                mailMessage.Attachments.Add(new Attachment(filename));
            }

            return(mailMessage);
        }