private void btnEnviar_Click(object sender, EventArgs e) { try { String Mensaje = String.Format(@"Anexamos el presente estado de cuenta para su validación y programación de pago. En caso de requerir aclaraciones favor de enviar un correo a {0} ({1}).<br><br>", Jefa, CorreoJefa); string tabla = @" <style type='text/css'> table, th, td { border: 1px solid black; border-spacing: 50px 50px 50px 50px; border-collapse: collapse; } </style> <br><br> <table cellpadding='6'> <tr> <td bgcolor='#2A2627'><font size=2 face='Calibri' color='#FFFFFF'><strong>No<br>Factura</strong></font></td> <td bgcolor='#2A2627'><font size=2 face='Calibri' color='#FFFFFF'><strong>Fecha de<br>Emisión</strong></font></td> <td bgcolor='#2A2627'><font size=2 face='Calibri' color='#FFFFFF'><strong>Fecha de<br>Vencimiento</strong></font></td> <td bgcolor='#2A2627'><font size=2 face='Calibri' color='#FFFFFF'><strong>Monto</strong></font></td> <td bgcolor='#FFFF00'><font size=2 face='Calibri' color='#000000'><strong>Devolución</strong></font></td> <td bgcolor='#92D050'><font size=2 face='Calibri' color='#000000'><strong>Nota de Crédito</strong></font></td> <td bgcolor='#FF0000'><font size=2 face='Calibri' color='#000000'><strong>Pagos<br>Aplicados</strong></font></td> <!--<td bgcolor='#2A2627'><font size=2 face='Calibri' color='#FFFFFF'><strong>Saldo<br>Vencido</strong></font></td> <td bgcolor='#2A2627'><font size=2 face='Calibri' color='#FFFFFF'><strong>Saldo<br>por vencer</strong></font></td>--> <td bgcolor='#2A2627'><font size=2 face='Calibri' color='#FFFFFF'><strong>Saldo<br>Pendiente</strong></font></td> <td bgcolor='#2A2627'><font size=2 face='Calibri' color='#FFFFFF'><strong>Estatus</strong></font></td> </tr>"; if (dataGridView1.Rows.Count > 0) { DataTable _resul = dataGridView1.DataSource as DataTable; string _color = string.Empty; int filas = 0; #region Vencido foreach (DataRow row in _resul.Rows) { if (row.Field <bool>("Enviar")) { if (row.Field <DateTime>("Fecha de vencimiento") < DateTime.Now) { _color = "#E5FFCC"; } else { _color = "#FFFFFF"; } tabla += @"<tr> <td><font size=2 face='Calibri'>" + row.Field <int>("Factura") + "</font></td>" + "<td><font size=2 face='Calibri'>" + row.Field <DateTime>("Fecha de emisión").ToShortDateString() + "</font></td>" + "<td><font size=2 face='Calibri'>" + row.Field <DateTime>("Fecha de vencimiento").ToShortDateString() + "</font></td>" + "<td><font size=2 face='Calibri'><p align='right'>" + row.Field <decimal>("Importe Original").ToString("C2") + "</p></font></td>" + "<td><font size=2 face='Calibri'><p align='right'>" + row.Field <decimal>("Nota por devolución").ToString("C2") + "</p></font></td>" + "<td><font size=2 face='Calibri'><p align='right'>" + row.Field <decimal>("Nota por precio especial").ToString("C2") + "</p></font></td>" + "<td><font size=2 face='Calibri'><p align='right'>" + row.Field <decimal>("Pagos aplicados").ToString("C2") + "</p></font></td>" + //"<td bgcolor = '" + _color + "'><font size=2 face='Calibri'><p align='right'>" + (row.Field<string>("Situación").Equals("Vencida") ? row.Field<decimal>("Saldo pendiente").ToString("C2") : string.Empty) + "</p></font></td>" + //"<td><font size=2 face='Calibri'><p align='right'>" + (!row.Field<string>("Situación").Equals("Vencida") ? row.Field<decimal>("Saldo pendiente").ToString("C2") : string.Empty) + "</p></font></td>" + "<td bgcolor = '" + _color + "'><font size=2 face='Calibri'><p align='right'>" + row.Field <decimal>("Saldo pendiente").ToString("C2") + "</p></font></td>" + "<td><font size=2 face='Calibri'>" + row.Field <string>("Situación") + "</font></td>" + "</tr>"; filas++; } } #endregion #region Total tabla += @" <tr> <td><font size=2 face='Calibri'></font></td>" + "<td><font size=2 face='Calibri'></font></td>" + "<td><font size=2 face='Calibri'></font></td>" + "<td><font size=2 face='Calibri'></font></td>" + "<td><font size=2 face='Calibri'></font></td>" + "<td><font size=2 face='Calibri'></font></td>" + "<td><font size=2 face='Calibri'></font></td>" + //"<td><font size=2 face='Calibri'></font></td>" + //"<td><font size=2 face='Calibri'></font></td>" + "<td><font size=2 face='Calibri'></font></td>" + @"<td><font size=2 face='Calibri'></font></td> </tr> <tr> <td bgcolor='#2A2627' colspan = '2'><font size=2 face='Calibri' color='#FFFFFF'><strong>Total general<br></strong></font></td> <td bgcolor='#2A2627'><font size=2 face='Calibri' color='#FFFFFF'><strong></strong></font></td> <td bgcolor='#2A2627'><font size=2 face='Calibri' color='#FFFFFF'><p align='right'><strong>" + Convert.ToDecimal(_resul.Compute("SUM([Importe Original])", "Enviar=1")).ToString("C2") + @"</strong></p></font></td> <td bgcolor='#FFFF00'><font size=2 face='Calibri' color='#000000'><p align='right'><strong>" + Convert.ToDecimal(_resul.Compute("SUM([Nota por devolución])", "Enviar=1")).ToString("C2") + @"</strong></p></font></td> <td bgcolor='#92D050'><font size=2 face='Calibri' color='#000000'><p align='right'><strong>" + Convert.ToDecimal(_resul.Compute("SUM([Nota por precio especial])", "Enviar=1")).ToString("C2") + @"</strong></p></font></td> <td bgcolor='#FF0000'><font size=2 face='Calibri' color='#000000'><p align='right'><strong>" + Convert.ToDecimal(_resul.Compute("SUM([Pagos aplicados])", "Enviar=1")).ToString("C2") + @"</strong></p></font></td> <!--<td bgcolor='#2A2627'><font size=2 face='Calibri' color='#FFFFFF'><p align='right'><strong>" + Convert.ToDecimal(_resul.Compute("SUM([Saldo pendiente])", "Enviar=1 AND Situación = 'Vencida'")).ToString("C2") + @"</strong></p></font></td> <td bgcolor='#2A2627'><font size=2 face='Calibri' color='#FFFFFF'><p align='right'><strong>" + Convert.ToDecimal(_resul.Compute("SUM([Saldo pendiente])", "Enviar=1 AND Situación = 'Por vencer'")).ToString("C2") + @"</strong></p></font></td>--> <td bgcolor='#2A2627'><font size=2 face='Calibri' color='#FFFFFF'><p align='right'><strong>" + Convert.ToDecimal(_resul.Compute("SUM([Saldo pendiente])", "Enviar=1")).ToString("C2") + @"</strong></p></font></td> <td bgcolor='#2A2627'><font size=2 face='Calibri' color='#FFFFFF'><p align='right'><strong></strong></font></td> </tr> </table> "; #endregion Cobranza.SendMail mail = new SendMail(); if (filas > 0) { if (!string.IsNullOrEmpty(CorreoCliente)) { string _referencia = String.Format("<br><br><b>RECUERDE REALIZAR SU PAGO EN LA CUENTA BANAMEX: {0}.<b>", Referencia); mail.EnviarEstadoCuenta(CorreoCliente, Mensaje + txtComentarios.Text + tabla + _referencia, "ESTADO DE CUENTA DISTRIBUIDORA PJ S.A. DE CV. Cliente: " + CardCode + " - " + CardName, CorreoJefa + ";" + CorreoVendedor, Jefa, CorreoJefa, string.Empty); //mail.EnviarEstadoCuenta("*****@*****.**", Mensaje + txtComentarios.Text + tabla + _referencia, "Estado de Cuenta Cliente: " + CardCode + " - " + CardName, "*****@*****.**", Jefa, CorreoJefa, string.Empty); foreach (DataRow row in _resul.Rows) { if (row.Field <bool>("Enviar")) { //Validaciones de correos Jefa-Vendedor-Cliente //Validaciones de Referencia this.RegistraEnviado(row.Field <int>("Factura").ToString()); } } using (SqlConnection connection = new SqlConnection(ClasesSGUV.Propiedades.conectionSGUV)) { using (SqlCommand command = new SqlCommand("sp_EstadoCuenta", connection)) { command.CommandType = CommandType.StoredProcedure; command.Parameters.AddWithValue("@TipoConsulta", 3); command.Parameters.AddWithValue("@Cliente", txtCliente.Text); command.Parameters.AddWithValue("@Usuario", ClasesSGUV.Login.Id_Usuario); connection.Open(); command.ExecuteNonQuery(); } } MessageBox.Show("El Estado de cuenta se ha enviado a: " + CorreoCliente, "HalcoNET", MessageBoxButtons.OK, MessageBoxIcon.Information); } else { MessageBox.Show("El cliente no tiene asignado una cuenta de correo electronico ", "HalcoNET", MessageBoxButtons.OK, MessageBoxIcon.Warning); } } } } catch (Exception ex) { MessageBox.Show("Error: " + ex.Message, "HalcoNET", MessageBoxButtons.OK, MessageBoxIcon.Error); } }