carga masiva salarios

This commit is contained in:
JORGE LUIS CAUDILLO ESPARZA
2023-02-02 11:54:00 -07:00
parent 5c13dff631
commit 3f81b54267
9 changed files with 542 additions and 98 deletions

View File

@@ -6,10 +6,26 @@ using System.Text;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using AjaxControlToolkit.HtmlEditor.ToolbarButtons;
using Extensiones;
using StackExchange.Redis;
using Telerik.Web.UI.Widgets;
using static Extensiones.ModExtensiones;
using static Stimulsoft.Report.StiOptions.Export;
public partial class RH_CalculoSBC : ClsPaginas
{
private DataTable dtsalario
{
get
{
if (ViewState["dtsalario"] == null) { return null; }
else { return (DataTable)ViewState["dtsalario"]; }
}
set { ViewState["dtsalario"] = value; }
}
private DataTable dtDetalleParteVariable
{
get
@@ -33,7 +49,7 @@ public partial class RH_CalculoSBC : ClsPaginas
else
DdlRegistroPatronal.DataSource = null;
DdlRegistroPatronal.DataBind();
DdlRegistroPatronal.DataBind();
ObjRH.Dispose();
//string rutarchivos = string.Format("{0}modificacionsalarios\\", UsuarioActual.Empresa.RutaArchivos);
//Alert(rutarchivos);
@@ -49,7 +65,7 @@ public partial class RH_CalculoSBC : ClsPaginas
protected void LnkDownExcelSua_Click(object sender, EventArgs e)
{
}
protected void LnkUpSuamodal_Click(object sender, EventArgs e)
protected void LnkUpSuamodal_Click(object sender, EventArgs e)
{
TxtArchivoSua.Text = "";
GVProcesarSUA.DataSource = null;
@@ -87,7 +103,7 @@ public partial class RH_CalculoSBC : ClsPaginas
//RegistraScript("showResult();");
RegistraScript("$('#DmodalCompareSua').modal('hide');shownew();");
Alert("El archivo se a procesado Correctamente");
LnkCalcular_Click(null,null);
LnkCalcular_Click(null, null);
UpArchivoSua.Update();
}
@@ -196,9 +212,10 @@ public partial class RH_CalculoSBC : ClsPaginas
{
using (ClsNominas objnom = new ClsNominas())
{
if (objnom.GetCalculoSBC(UsuarioActual.CveEmpresa, DdlTipo.SelectedValue.ToEntero(), TxtFechaPago.Text,DdlRegistroPatronal.SelectedValue.ToEntero()))
if (objnom.GetCalculoSBC(UsuarioActual.CveEmpresa, DdlTipo.SelectedValue.ToEntero(), TxtFechaPago.Text, DdlRegistroPatronal.SelectedValue.ToEntero()))
{
GVCalculosSBC.DataSource = objnom.DTSetResultados.Tables[0];
dtsalario = objnom.DTSetResultados.Tables[0];
GVCFija.DataSource = objnom.DTSetResultados.Tables[0];
GVPV.DataSource = objnom.DTSetResultados.Tables[0];
if (objnom.DTSetResultados.Tables.Count > 1)
@@ -214,6 +231,160 @@ public partial class RH_CalculoSBC : ClsPaginas
GVPV.DataBind();
}
protected void LnkModalCargaMasiva_Click(object sender, EventArgs e)
{
txtfechacargamasiva.Text = TxtFechaPago.Text;
UpCargarm.Update();
RegistraScript("$('#DmodalCargaMasiva').modal();");
}
protected void LnkFormatocMasiva_Click(object sender, EventArgs e)
{
try
{
bool continuar = true;
string msgerror = "";
if (continuar)
{
ClosedXML.Excel.XLWorkbook wb = new ClosedXML.Excel.XLWorkbook();
var libro = wb.AddWorksheet("Salario");
int column = 1;
libro.Cell(1, column).Value = "Codigo";
column++;
libro.Cell(1, column).Value = "Empleado";
column++;
libro.Cell(1, column).Value = "Salariodiario";
//column++;
//libro.Cell(1, column).Value = "SDI";
column++;
libro.Cell(1, column).Value = "Salariovariable";
libro.Column(column).Width = 35;
libro.Row(1).CellsUsed().Style.Font.FontColor = ClosedXML.Excel.XLColor.White;
libro.Row(1).CellsUsed().Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(79, 129, 189));
int Fila = 1;
foreach (DataRow erow in dtsalario.Rows)
{
Fila++;
column = 1;
libro.Cell(Fila, column).Value = string.Format("'{0}", erow["Codigo"]);
column++;
libro.Cell(Fila, column).Value = erow["Nombre"];
column++;
libro.Cell(Fila, column).Value = erow["SalarioDiario"];
column++;
libro.Cell(Fila, column).Value = erow["SDI"];
column++;
libro.Cell(Fila, column).Value = erow["SalarioVariable"];
}
libro.Columns().AdjustToContents();
System.IO.Stream fs = new System.IO.MemoryStream();
wb.SaveAs(fs);
fs.Position = 0;
System.IO.MemoryStream memoryStream = new System.IO.MemoryStream();
using (System.IO.Stream input = fs)
{
input.CopyTo(memoryStream);
}
memoryStream.Position = 0;
Response.Clear();
Response.Buffer = true;
Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
Response.AddHeader("content-disposition", string.Format("attachment;filename={0}.xlsx", "Plantilla Salario "));
Response.BinaryWrite(memoryStream.ToArray());
Response.End();
}
else
{
Alert(msgerror, TipoMensaje.MsgAdvertencia);
}
}
catch (Exception ex)
{
Alert("Ocurrio un error al generar el Formato de nominas" + ex.ToString(), TipoMensaje.MsgAdvertencia);
}
}
protected void LnkProcesarArchvo_Click(object sender, EventArgs e)
{
DataTable dttempsalario = null;
using (ClsNominas objnom = new ClsNominas())
{
if (objnom.GetCalculoSBC(UsuarioActual.CveEmpresa, DdlTipo.SelectedValue.ToEntero(), txtfechacargamasiva.Text, DdlRegistroPatronal.SelectedValue.ToEntero()))
{
dttempsalario = objnom.DTSetResultados.Tables[0];
}
}
try
{
List<Archivo> Filesgral = TxtArchivoNomina.getfiles().Archivos;
Archivo fileItem = Filesgral.Count > 0 ? Filesgral[0] : null;
DataTable DTEXcel = Extensiones.ModExtensiones.ReadExcelFile(fileItem.FileUrl, true);
StringBuilder str = new StringBuilder();
bool rollback = false;
using (ClsRH objpersonal = new ClsRH())
{
using (ClsNominas objNomina = new ClsNominas(objpersonal.IniciaTransacSQL()))
{
foreach (DataRow row in DTEXcel.FiltraParametros("LEN(Codigo)>0 ").Rows)
{
string Codigo = row["Codigo"].ToString();
int CvePersonal = -1; // row["CvePersonal"].ToString().ToEntero();
decimal Salariodiario = row["Salariodiario"].ToString().ToDecimal();
decimal SDI = 0;
decimal Salariovariable = row["Salariovariable"].ToString().ToDecimal();
decimal SalarioCotizacion = 0;
int CveMetodoPago = 0;
if (Codigo != "-1" && objpersonal.GetPersonal(CvePersonal, Codigo, "-1", "-1", "-1", -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, "-1", -1, -1, -1, -1, -1, -1, "-1", "-1", "-1", "-1", UsuarioActual.CveEmpresa) &&
objpersonal.DtResultados.Rows.Count == 1)
{
CvePersonal = objpersonal.CvePersonal;
CveMetodoPago = objpersonal.CveMetodoPago;
}
else
{
CvePersonal = 0;
str.AppendLine(string.Format("No se encontro el codigo {0}<br>", Codigo));
}
if (CvePersonal > 0)
{
DataRow drw = dttempsalario.FiltroPrimero(string.Format("CvePersonal={0}", CvePersonal));
decimal factordeintegracion = drw["Factordeintegracion"].ToString().ToDecimal();
SDI = Salariodiario * factordeintegracion;
SalarioCotizacion = Salariovariable + SDI;
if (objpersonal.UpdateSalarios(CvePersonal, txtfechacargamasiva.Text.ToDate().ToString("yyyy/MM/dd"), UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa,
Salariodiario.ToString().ToDouble(), SDI.ToString().ToDouble(), SalarioCotizacion.ToString().ToDouble(), Salariodiario.ToString().ToDouble()))
{
{
}
}
}
}
if (rollback)
{
objpersonal.RollBack();
}
else
{
objpersonal.Commit();
}
}
}
}
catch (Exception) { }
RegistraScript("$('#ModalDoctos').modal('hide');");
}
protected void LnkDownArchivosSua_Click(object sender, EventArgs e)
{
@@ -250,12 +421,12 @@ public partial class RH_CalculoSBC : ClsPaginas
double SalarioDiarioSSNuevo = Math.Round(item.DataKey("SalarioDiarioSSNuevo").ToDouble(), 2);
double SalarioDiarioSS = Math.Round(item.DataKey("SalarioDiarioSS").ToDouble(), 2);
string RegistroPatronal = item.DataKey("RegistroPatronal");
if(oldRegistroPatronal != "-1" && oldRegistroPatronal != RegistroPatronal )
if (oldRegistroPatronal != "-1" && oldRegistroPatronal != RegistroPatronal)
{
MovtosmodSalario = string.Format("{0}{1}{2}", MovtosmodSalario, concater,
$"************* 00{(contador < 1000 ? "0" : "")}{(contador < 100 ? "0" : "")}{(contador < 10 ? "0" : "")}{contador} 00001 9");
Script =string.Format("{0}SaveCsv(\"Movtos{3}_{2:ddMMMyyyy}.txt\", '{1}');", Script, MovtosmodSalario, TxtFechaPago.Text.ToDateTimeExcat("dd/MM/yyyy"), oldRegistroPatronal);
Script = string.Format("{0}SaveCsv(\"Movtos{3}_{2:ddMMMyyyy}.txt\", '{1}');", Script, MovtosmodSalario, TxtFechaPago.Text.ToDateTimeExcat("dd/MM/yyyy"), oldRegistroPatronal);
MovtosmodSalario = "";
concater = "";
@@ -323,7 +494,7 @@ public partial class RH_CalculoSBC : ClsPaginas
}
RegistraScript(Script);
// RegistraScript(string.Format("SaveCsv(\"MovtosmodSalario{1:ddMMMyyyy}.txt\", '{0}');", MovtosmodSalario, TxtFechaPago.Text.ToDateTimeExcat("dd/MM/yyyy")));
// RegistraScript(string.Format("SaveCsv(\"MovtosmodSalario{1:ddMMMyyyy}.txt\", '{0}');", MovtosmodSalario, TxtFechaPago.Text.ToDateTimeExcat("dd/MM/yyyy")));
//RegistraScript(string.Format("SaveCsv(\"MovtosAfil.txt\", '{0}');SaveCsv(\"MovtosmodSalario.txt\", '{1}');SaveCsv(\"movtosBajas.txt\", '{2}');", MovtosAfil.Replace("'", "\\'"), MovtosmodSalario.Replace("'", "\\'"), movtosBajas.Replace("'", "\\'")));
//RegistraScript("$('#DmodalGetSua').modal('hide');");
}
@@ -344,7 +515,7 @@ public partial class RH_CalculoSBC : ClsPaginas
double SalarioDiarioSSNuevo = Math.Round(item.DataKey("SalarioDiarioSSNuevo").ToDouble(), 2);
double SalarioVariableNuevo = item.DataKey("SalarioVariableNuevo").ToDouble();
double SalarioDiarioSS = Math.Round(item.DataKey("SalarioDiarioSS").ToDouble(), 2);
if (continuar && SalarioDiarioSSNuevo != SalarioDiarioSS &&
if (continuar && SalarioDiarioSSNuevo != SalarioDiarioSS &&
(continuar = objrh.UpdateSalarios(CvePersonal, fecha, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, SalarioDiario, SDINuevo, SalarioDiarioSSNuevo, SalarioDiario)))
{
@@ -508,8 +679,8 @@ public partial class RH_CalculoSBC : ClsPaginas
string cfecha = urfile.Replace(rutarchivos, "").Substring(0, 10).ToDateTime().ToString("dd/MM/yyyy");
archivosD arch = new archivosD() { nombrearchivo = cfecha, ruta = urfile, fecha= System.IO.File.GetCreationTime(urfile) };
lisaarchivos.Add(arch);
archivosD arch = new archivosD() { nombrearchivo = cfecha, ruta = urfile, fecha = System.IO.File.GetCreationTime(urfile) };
lisaarchivos.Add(arch);
}
}
@@ -518,6 +689,7 @@ public partial class RH_CalculoSBC : ClsPaginas
UpModalDoctos.Update();
RegistraScript("$('#ModalDoctos').modal();");
}
}
public class archivosD
{