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); }
public IEnumerable <NormalContractItem> NormalContractItemsFromContract(int contractId) { ContractItemDAO contractItemDAO = new ContractItemDAO(connectionString); IEnumerable <NormalContractItem> normalContractItems = contractItemDAO.NormalContractItemsFromContract(contractId); return(normalContractItems); }
private void SaveContractMasterItems(MasterContract masterContract) { ContractItemDAO contractItemDAO = new ContractItemDAO(connectionString); MasterContractItem result; foreach (MasterContractItem contractMasterItem in masterContract.MasterContractItems) { if (contractMasterItem.Id == 0) { contractMasterItem.CreationUser = masterContract.CreationUser; result = contractItemDAO.InsertContractMasterItem(masterContract.Id, contractMasterItem); } else { contractMasterItem.ModifyUser = masterContract.ModifyUser; contractMasterItem.ContractId = masterContract.Id; result = contractItemDAO.UpdateContractMasterItem(contractMasterItem); } if (result != null) { contractMasterItem.Id = result.Id; } } }
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); }
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); }
public void UpdateContract() { int wstep; try { EpTransaction tran = DataManager.BeginTransaction(); try { wstep = 100 / contractHeader.Count; foreach (ZCONTRACT_HDR x in contractHeader) { ContractHeader hrd = new ContractHeader(); hrd.ContractNumber = x.Ebeln; hrd.ContractDate = Convert.ToInt64(x.Bedat); hrd.ContractCategory = x.Bstyp; hrd.DocumentType = x.Bsart; hrd.ContractValue = x.Ktwrt; hrd.CreatedBy = x.Ernam; hrd.Currency = x.Waers; hrd.ExchangeRate = x.Wkurs; hrd.InternalReference = ""; hrd.PaymentTerms = x.Zterm; hrd.PurchasingGroup = x.Ekgrp; hrd.SalesContactPerson = x.Verkf; hrd.SupplierId = x.Lifnr; hrd.Telephone = x.Telf1; hrd.ValidityEnd = Convert.ToInt64(x.Kdate); hrd.ValidityStart = Convert.ToInt64(x.Kdatb); if (ContractHeaderDAO.RetrieveByKey(tran, x.Ebeln) != null) { ContractHeaderDAO.Update(tran, hrd); } else { ContractHeaderDAO.Insert(tran, hrd); } wstr = wstr + x.Ebeln + ", "; aForm.getProgressBar().Increment(wstep); } this.setParameters(); wstep = 100 / contractItem.Count; foreach (ZCONTRACT_ITM x in contractItem) { ContractItem itm = new ContractItem(); itm.ContractNumber = x.Ebeln; itm.ContractItemSequence = x.Ebelp; itm.Description = x.Txz01; itm.MaterialGroup = x.Matkl; itm.MaterialNumber = x.Matnr; itm.NetValue = x.Brtwr; itm.Plant = x.Werks; itm.PricePerUnit = x.Peinh; itm.Requisitioner = x.Afnam; itm.RequisitionNumber = x.Banfn; itm.RFQNumber = x.Anfnr; itm.TargetQuantity = x.Ktmng; itm.UnitOfMeasure = x.Meins; itm.UnitPrice = x.Netpr; if (ContractItemDAO.RetrieveByKey(tran, x.Ebeln, x.Ebelp) != null) { ContractItemDAO.Update(tran, itm); } else { ContractItemDAO.Insert(tran, itm); } wstr = wstr + x.Ebeln + ", "; aForm.getProgressBar().Increment(wstep); } tran.Commit(); } catch (Exception ex) { tran.Rollback(); throw (ex); } finally { tran.Dispose(); } this.RemoveContractDetails(); } catch (Exception ex) { Utility.ExceptionLog(ex); throw (ex); } }