This commit is contained in:
JORGE LUIS CAUDILLO ESPARZA
2024-07-22 06:22:40 -07:00
71 changed files with 6722 additions and 2900 deletions

View File

@@ -9891,15 +9891,10 @@ public partial class Nomina_Nomina2 : ClsPaginas
DdlCuenta.DataBind();
DdlCuenta.Items.Insert(0, new ListItem("Seleccione", "-1"));
DdlCuenta.SelectedValueExist("-1");
}
protected void DdlCuenta_SelectedIndexChanged(object sender, EventArgs e)
{
ConvenioPagoElectronico = string.Empty;
DivModalLayoutBancosFecha.Visible = false;
@@ -9907,10 +9902,9 @@ public partial class Nomina_Nomina2 : ClsPaginas
{
ConvenioPagoElectronico = get_GlobalDTBancosCuentas(UsuarioActual.CveUsuario, CveEmpresa: UsuarioActual.CveEmpresa).FiltroPrimeroValor("ConvenioPagoElectronico", $" CveCuenta = {DdlCuenta.SelectedValue}").ToString();
if (DdlCuenta.SelectedItem.Text.ToUpper().Contains("BANCOMER"))
if (DdlCuenta.SelectedItem.Text.ToUpper().Contains("BANCOMER") || DdlCuenta.SelectedItem.Text.ToUpper().Contains("BBVA"))
{
Banco = Bancos.Bancomer;
}
else if (DdlCuenta.SelectedItem.Text.ToUpper().Contains("BANORTE"))
{
@@ -9925,16 +9919,12 @@ public partial class Nomina_Nomina2 : ClsPaginas
else
{
ConvenioPagoElectronico = string.Empty;
}
}
else
{
Banco = Bancos.SinSelccion;
}
}
protected void BtnLayoutXLS_Click(object sender, EventArgs e)
@@ -9958,7 +9948,7 @@ public partial class Nomina_Nomina2 : ClsPaginas
libro.Range(1, 1, row, column - 1).Style.Font.FontColor = ClosedXML.Excel.XLColor.White;
libro.Range(1, 1, row, column - 1).Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(79, 129, 189));
if (objnom.GetDispersionnominaXLS(CvePeriodoSeleccionado, UsuarioActual.CveEmpresa))
if (objnom.GetDispersionNomina(CvePeriodoSeleccionado, UsuarioActual.CveEmpresa, -1))
{
foreach (DataRow dRow in objnom.DtResultados.Rows)
{
@@ -9967,7 +9957,7 @@ public partial class Nomina_Nomina2 : ClsPaginas
libro.Cell(row, column++).Value = dRow["Codigo"];
libro.Cell(row, column++).Value = dRow["Nombre"];
libro.Cell(row, column++).Value = string.Format("'{0}", dRow["BancoNombre"]);
libro.Cell(row, column++).Value = string.Format("'{0}", dRow["BancoNumCuenta"]);
libro.Cell(row, column++).Value = string.Format("'{0}", dRow["NumeroCuenta"]);
libro.Cell(row, column++).Value = string.Format("'{0}", dRow["CLABE"]);
var importeCell = libro.Cell(row, column++);
importeCell.Value = dRow["Importe"];
@@ -9994,12 +9984,8 @@ public partial class Nomina_Nomina2 : ClsPaginas
Response.AddHeader("content-disposition", string.Format("attachment;filename={0}.xlsx", "ListadePago"));
Response.BinaryWrite(memoryStream.ToArray());
Response.End();
}
}
protected void BtnEfectivaleXLS_Click(object sender, EventArgs e)
{
@@ -10019,31 +10005,28 @@ public partial class Nomina_Nomina2 : ClsPaginas
libro.Cell(row, column++).Value = "XTIPOPEDIDO";
libro.Cell(row, column++).Value = "XNUMERO";
libro.Cell(row, column++).Value = "XIMPORTE";
//libro.Cell(row, column++).Value = "CLABE";
//libro.Cell(row, column++).Value = "Neto";
int maxxolumn = column;
libro.Range(row, 1, row, column - 1).Style.Font.FontColor = ClosedXML.Excel.XLColor.White;
libro.Range(row, 1, row, column - 1).Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(79, 129, 189));
DataRow dcon;
decimal subtotal = 0;
DataTable dt = null;
using (ClsNominas objnom = new ClsNominas())
if (dtempleados != null && dtempleados.Rows.Count > 0 && dtConceptos != null && dtConceptos.Rows.Count > 0 && (dcon = dtConceptos.FiltroPrimero("Tipo ='P' AND Codigo = 'P028' ")) != null)
{
objnom.GetEfectivaleXLS(CvePeriodoSeleccionado, UsuarioActual.CveEmpresa, -1);
dt = objnom.DtResultados;
}
if (dt != null && dt.Rows.Count > 0)
{
foreach (DataRow dRow in dt.Rows)
foreach (DataRow dRow in dtempleados.FiltraParametros("CvePersonal > 0").Rows)
{
decimal importe = dRow["Importe"].ToString().ToDecimal();
subtotal = subtotal + importe;
row++;
column = 1;
libro.Cell(row, column++).Value = string.Format("'{0}", dRow["XCLIENTE"]);
libro.Cell(row, column++).Value = string.Format("'{0}", dRow["XTIPOPEDIDO"]);
libro.Cell(row, column++).Value = string.Format("'{0}", dRow["CodigoDispersionVale"]);
libro.Cell(row, column++).Value = importe;
decimal importe = dRow[string.Format("V_{0}", dcon["CveConcepto"])].ToString().ToDecimal();
if (importe > 0)
{
subtotal = subtotal + importe;
row++;
column = 1;
libro.Cell(row, column++).Value = "'103646-1";
libro.Cell(row, column++).Value = "'DISPERSION";
libro.Cell(row, column++).Value = string.Format("'{0}", dRow["Codigo"]);
libro.Cell(row, column++).Value = importe;
}
}
}
libro.Cell(1, 2).Value = subtotal;
@@ -10078,84 +10061,73 @@ public partial class Nomina_Nomina2 : ClsPaginas
{
using (ClsNominas objnom = new ClsNominas())
{
if (objnom.GetDispersionnomina(CvePeriodoSeleccionado, UsuarioActual.CveEmpresa))
if (objnom.GetDispersionNomina(CvePeriodoSeleccionado, UsuarioActual.CveEmpresa, 4))
{
CrearLayoutNominaBancomer(objnom.DtResultados);
}
}
}
else if (Banco == Bancos.Banorte)
{
using (ClsNominas objnom = new ClsNominas())
{
if (objnom.GetDispersionNominaBanorte(CvePeriodoSeleccionado, UsuarioActual.CveEmpresa))
if (objnom.GetDispersionNomina(CvePeriodoSeleccionado, UsuarioActual.CveEmpresa, 18))
{
CrearLayoutNominaBanorte(objnom.DtResultados, ConvenioPagoElectronico, 1);
}
}
}
else if (Banco == Bancos.Banamex)
{
using (ClsNominas objnom = new ClsNominas())
{
if (objnom.GetDispersionnominaXLS(CvePeriodoSeleccionado, UsuarioActual.CveEmpresa))
if (objnom.GetDispersionNomina(CvePeriodoSeleccionado, UsuarioActual.CveEmpresa, 1))
{
CrearLayoutNominaBanamex(objnom.DtResultados.Copy());
CrearLayoutNominaBanamex(objnom.DtResultados);
}
}
}
}
private void CrearLayoutNominaBancomer(DataTable DTNomina)
{
StringBuilder sb = new StringBuilder();
StringBuilder SbErrores = new StringBuilder();
bool ErroresValidaciones = false;
int modalidadnomina = 1;
if (UsuarioActual.CveEmpresa == 189) modalidadnomina = 2;
SbErrores.AppendLine("Se detectaron los siguientes errores en la generación del layout");
SbErrores.AppendLine("Se detectaron los siguientes errores en la generación del layout:<br/>");
foreach (DataRow dRow in DTNomina.Rows)
{
string RFC = dRow["RFC"].ToString();
string Nombre = dRow["Nombre"].ToString();
string BancoNumCuenta = dRow["BancoNumCuenta"].ToString();
string BancoNumCuenta = dRow["NumeroCuenta"].ToString();
decimal Importe = dRow["Importe"].ToString().ToDecimal();
if (RFC.Trim().Length == 0)
SbErrores.AppendLine($"El RFC es requerido del empleado {Nombre}<br/>");
System.Text.RegularExpressions.Match Coincidencia = System.Text.RegularExpressions.Regex.Match(RFC, @"/^([A-Z,Ñ,&]{3,4}([0-9]{2})(0[1-9]|1[0-2])(0[1-9]|1[0-9]|2[0-9]|3[0-1])[A-Z|\d]{3})$/");
if (!Coincidencia.Success)
{
SbErrores.AppendLine($"El RFC {RFC} del empleado {Nombre} no es valido <br/>");
ErroresValidaciones = true;
}
//if (!Coincidencia.Success)
//{
// SbErrores.AppendLine($"El RFC {RFC} del empleado {Nombre} no es valido <br/>");
// ErroresValidaciones = true;
//}
if (BancoNumCuenta.Trim().Length != 10)
{
SbErrores.AppendLine($"Empleado {Nombre} numero de cuenta incorrecto, la cuenta debe de tener 10 caracteres<br/>"); // Bancomer 10 caracteres
SbErrores.AppendLine($"- {Nombre} numero de cuenta incorrecto, la cuenta debe de tener 10 caracteres<br/>"); // Bancomer 10 caracteres
ErroresValidaciones = true;
}
if (Importe <= 0)
{
SbErrores.AppendLine($"Empleado {Nombre} el importe debe de ser mayor a 0 importe {Importe}"); // importe mayot a 0
SbErrores.AppendLine($"- {Nombre} el importe debe de ser mayor a 0 importe {Importe}"); // importe mayot a 0
ErroresValidaciones = true;
}
}
ErroresValidaciones = false;
if (!ErroresValidaciones)
{
int Count = 1;
@@ -10165,40 +10137,40 @@ public partial class Nomina_Nomina2 : ClsPaginas
string RFC = dRow["RFC"].ToString();
string Nombre = dRow["Nombre"].ToString();
string BancoNumCuenta = dRow["BancoNumCuenta"].ToString();
string BancoNumCuenta = dRow["NumeroCuenta"].ToString();
decimal Importe = dRow["Importe"].ToString().ToDecimal().RoundSQL(2);
SbLinea.Append(Count.ToString("000000000"));
SbLinea.Append(RFC.Trim().PadRight(16));
SbLinea.Append("03");
if (modalidadnomina == 2) SbLinea.Append("99"); else SbLinea.Append("03");
SbLinea.Append(BancoNumCuenta.Trim().PadRight(20));
SbLinea.Append(Importe.ToString("0000000000000.00").Replace(".", ""));
if (Nombre.Trim().Length > 40)
Nombre = Nombre.Substring(0, 40);
SbLinea.Append(Nombre.Trim().PadRight(40));
SbLinea.Append("012");
SbLinea.Append("000");
if (modalidadnomina == 2)
{
SbLinea.Append("001"); SbLinea.Append("001");
}
else
{
SbLinea.Append("012"); SbLinea.Append("000");
}
sb.AppendLine(SbLinea.ToString());
Count = Count + 1;
}
Response.Clear();
Response.ClearHeaders();
Response.AppendHeader("Content-Length", sb.ToString());
Response.ContentType = "text/plain";
//Response.AppendHeader("Content-Disposition", $"attachment;filename=\"Nomina{NowADS().ToString("yyyyMMddhhmmss").ToString()}.txt\"");
Response.AppendHeader("Content-Disposition", $"attachment;filename=\"Nomina {DdlPeriodo.SelectedItem.Text}.txt\"");
Response.AppendHeader("Content-Disposition", $"attachment;filename=\"Nomina_BBVA_{DdlPeriodo.SelectedItem.Text}.txt\"");
Response.Write(sb.ToString());
RegistraScript("$('#ModalLayoutBancos').modal('hide');");
Response.Flush();
//RegistraScript("$('#ModalLayoutBancos').modal('hide');");
// Response.Flush();
Response.End();
}
else
@@ -10252,7 +10224,6 @@ public partial class Nomina_Nomina2 : ClsPaginas
{
foreach (DataRow dRow in DTNomina.Rows)
{
// Codigo ReferenciaDelServicio ReferenciaLeyendaDelOrdenante Importe NumeroBancoReceptor TipoCuenta NumeroCuenta TipoMovimiento Accion ImporteIvaOperacion
string Codigo = dRow["Codigo"].ToString().Trim();
string ReferenciaDelServicio = dRow["ReferenciaDelServicio"].ToString().Trim();
@@ -10265,7 +10236,6 @@ public partial class Nomina_Nomina2 : ClsPaginas
string Accion = dRow["Accion"].ToString().Trim();
string ImporteIvaOperacion = dRow["ImporteIvaOperacion"].ToString().Trim();
//Linea Nueva
sb.AppendLine("");
@@ -10284,7 +10254,6 @@ public partial class Nomina_Nomina2 : ClsPaginas
SbErrores.AppendLine($"{Codigo} Codigo {Codigo} debe de tener una logitud de entre 1 y 10<br/>");
ErrorProceso = true;
}
//ReferenciaDelServicio A 40 20-29
sb.Append(ReferenciaDelServicio.PadLeft(40, Espacio));
//ReferenciaLeyendaDelOrdenante A 40 60-99
@@ -10305,19 +10274,13 @@ public partial class Nomina_Nomina2 : ClsPaginas
sb.Append(ImporteIvaOperacion.PadLeft(8, Cero));
//filler 18 148-165
sb.Append(string.Empty.PadLeft(18, Espacio));
}
if (!ErrorProceso)
{
sb.AppendLine("");
}
}
if (!ErrorProceso)
{
Response.Clear();
@@ -10327,7 +10290,7 @@ public partial class Nomina_Nomina2 : ClsPaginas
Response.AppendHeader("Content-Disposition", $"attachment;filename=\"NI{Emisora.PadLeft(5, Cero)}{Consecutivo.ToString("00")}.PAG\"");
Response.Write(sb.ToString());
RegistraScript("$('#ModalLayoutBancos').modal('hide');");
Response.Flush();
//Response.Flush();
Response.End();
}
else
@@ -10348,11 +10311,11 @@ public partial class Nomina_Nomina2 : ClsPaginas
SbErrores.AppendLine("Se detectaron los siguientes errores en la generación del layout");
foreach (DataRow dRow in DTNomina.FiltraParametros("UPPER(BancoNombre) like '%BANAMEX%'").Rows)
foreach (DataRow dRow in DTNomina.Rows)
{
//string RFC = dRow["RFC"].ToString();
string Nombre = dRow["Nombre"].ToString();
string BancoNumCuenta = dRow["BancoNumCuenta"].ToString();
string BancoNumCuenta = dRow["NumeroCuenta"].ToString();
decimal Importe = dRow["Importe"].ToString().ToDecimal();
//if (RFC.Trim().Length == 0)
@@ -10365,7 +10328,7 @@ public partial class Nomina_Nomina2 : ClsPaginas
// ErroresValidaciones = true;
//}
if (BancoNumCuenta.Trim().Length != 10)
if (BancoNumCuenta.Trim().Length != 10 || BancoNumCuenta.Trim().Length != 16)
{
SbErrores.AppendLine($"Empleado {Nombre} numero de cuenta incorrecto, la cuenta debe de tener 10 caracteres<br/>"); // Bancomer 10 caracteres
ErroresValidaciones = true;
@@ -10391,7 +10354,7 @@ public partial class Nomina_Nomina2 : ClsPaginas
//REGISTRO DE CONTROL - IMPORTACIÓN
var TipoRegistro = "1";
var NumeroCliente = RowCuenta["Convenio"].ToString().Trim().PadLeft(12, '0'); //CONVENIO
var NumeroCliente = RowCuenta["ConvenioPagoElectronico"].ToString().Trim().PadLeft(12, '0'); //CONVENIO
var Fecha = TxtModalLayoutBancosFecha.Text.ToDate();
var FechaPago = $"{Fecha.Day.ToString().PadLeft(2, '0')}{Fecha.ToString("MM")}{Fecha.Year.ToString().Replace("20", "")}";
@@ -10418,7 +10381,9 @@ public partial class Nomina_Nomina2 : ClsPaginas
sb.AppendLine($"{TipoReg2}{TipoOpe2}{ClaveMoneda}{ImporteTotal}{TipoCuenta}{Sucursal}{NumCuenta}{Espacio}");
//REGISTRO DE CARGOS O ABONOS INDIVIDUALES - IMPORTACIÓN
int Count = 1;
int Count = 0;
decimal SumaImportes = 0;
foreach (DataRow dRow in DTNomina.Rows)
{
var TipoReg3 = "3"; //Registro de Movtos. Individuales
@@ -10429,40 +10394,45 @@ public partial class Nomina_Nomina2 : ClsPaginas
string AMaterno = dRow["AMaterno"].ToString().Replace("ñ,Ñ", "n").Replace("*,#,$,%,=,+", "");
//string BancoNumCuenta = dRow["BancoNumCuenta"].ToString();
string BancoNumCuenta = dRow["BancoNumCuenta"].ToString();
string BancoNumCuenta = dRow["NumeroCuenta"].ToString();
decimal Importe = dRow["Importe"].ToString().ToDecimal().RoundSQL(2);
var StrImporte = Importe.ToString("0000000000000000.00").Replace(".", "");
var StrTipoCuenta = "03";// 01- Cheques / CLABE, 03=Plástico
var StrCuenta = BancoNumCuenta.Trim().PadLeft(20, '0'); //USARA TARJETA DE DEBITO
var ReferenciaAlfa = ("").PadRight(40); //No se ocupa si es nomina banamex
var ReferenciaAlfa = (dRow["Codigo"].ToString()).PadRight(10); //si banamex debe ser de 10 digitos, y agregar 30 espacios
var EspacioRefBen = ("").PadRight(30);
var Beneficiario = ($"{Nombres},{APaterno}/{AMaterno}").PadRight(55);
var Inst3 = ("").PadRight(40);
var Inst3 = ("PAGO").PadRight(40);
var DescTEF = ("").PadRight(24);
var ClaveBanco = ("").PadRight(4); //BANCOMER //No se ocupa si es nomina baname
var ReferenciaNum = dRow["Codigo"].ToString().PadRight(7, '0'); //QUE TOME DE LA CvePersonal como folio
var Plazo = "00"; // MISMO DIA
sb.AppendLine($"{TipoReg3}{TipoOpe3}{ClaveMoneda}{StrImporte}{StrTipoCuenta}{StrCuenta}{ReferenciaAlfa}{Beneficiario}{Inst3}{DescTEF}{ClaveBanco}{ReferenciaNum}{Plazo}00");
var ClaveBanco = ("0000").PadRight(4); //No se ocupa si es nomina banamex
var ReferenciaNum = ("").PadRight(7, '0'); //QUE TOME DE LA CvePersonal como folio , SOLO PARA INTERBANCARIOS
var Plazo = ""; // 00 - MISMO DIA , 24 HRS
sb.AppendLine($"{TipoReg3}{TipoOpe3}{ClaveMoneda}{StrImporte}{StrTipoCuenta}{StrCuenta}{ReferenciaAlfa}{EspacioRefBen}{Beneficiario}{Inst3}{DescTEF}{ClaveBanco}{ReferenciaNum}{Plazo}00");
Count = Count + 1;
Count += 1;
SumaImportes += Importe;
}
//REGISTRO DE TOTALES - IMPORTACIÓN
var TipoReg4 = "4";
// LOS ABONOS A LOS EMPLEADOS
var NumAbonos = Count.ToString("000000");
var NumCargos = Count.ToString("000000");
//EL CARGO QUE SE LE HIZO A LA CUENTA DE LA EMPRESA
var NumCargos = (1).ToString("000000");
var StrImportes = SumaImportes.ToString("0000000000000000.00").Replace(".", "");
sb.AppendLine($"{TipoReg4}{ClaveMoneda}{NumAbonos}{ImporteTotal}{NumCargos}{ImporteTotal}");
sb.Append($"{TipoReg4}{ClaveMoneda}{NumAbonos}{StrImportes}{NumCargos}{StrImportes}");
Response.Clear();
Response.ClearHeaders();
Response.AppendHeader("Content-Length", sb.ToString());
Response.ContentType = "text/plain";
//Response.AppendHeader("Content-Disposition", $"attachment;filename=\"Nomina{NowADS().ToString("yyyyMMddhhmmss").ToString()}.txt\"");
Response.AppendHeader("Content-Disposition", $"attachment;filename=\"Nomina {DdlPeriodo.SelectedItem.Text}.txt\"");
Response.AppendHeader("Content-Disposition", $"attachment;filename=\"Nomina_Banamex_{DdlPeriodo.SelectedItem.Text}.txt\"");
Response.Write(sb.ToString());
RegistraScript("$('#ModalLayoutBancos').modal('hide');");
Response.Flush();
//RegistraScript("$('#ModalLayoutBancos').modal('hide');");
//Response.Flush();
Response.End();
}
else
@@ -10470,9 +10440,6 @@ public partial class Nomina_Nomina2 : ClsPaginas
}
#endregion
protected void LnkBitacoraCorreo_Click(object sender, EventArgs e)
{
using (ClsRH objrh = new ClsRH())