This commit is contained in:
Oscar Irigoyen
2022-11-18 23:54:11 -07:00
7 changed files with 686 additions and 290 deletions

View File

@@ -10,7 +10,7 @@ Public Class LogicNominas
Public Sub New() Public Sub New()
guardarLogTimbrado = False guardarLogTimbrado = False
End Sub End Sub
Public Function TimbrarNomina(CveNomina As Integer, CvePersonal As Integer, CvePeriodo As Integer, UsuarioActual As Usuario, Optional CvePAC As Integer = 4) As String Public Function TimbrarNomina(CveNomina As Integer, CvePersonal As Integer, CvePeriodo As Integer, UsuarioActual As Usuario, Optional CvePAC As Integer = 4, Optional versionTimbre As VersionTimbradoEnum = VersionTimbradoEnum.PorDefectoEmpresa) As String
Dim Retorno As String = "" Dim Retorno As String = ""
GetError = "" 'Le reasigno el current error a nulo GetError = "" 'Le reasigno el current error a nulo
Dim sw As Diagnostics.Stopwatch = Nothing Dim sw As Diagnostics.Stopwatch = Nothing
@@ -19,7 +19,7 @@ Public Class LogicNominas
sw.Start() sw.Start()
End If End If
Dim cfdi As CFDITimbre = PreTimbrar(CveNomina, UsuarioActual, False) 'CvePersonal, CvePeriodo, Dim cfdi As CFDITimbre = PreTimbrar(CveNomina, UsuarioActual, False, versionTimbre) 'CvePersonal, CvePeriodo,
If cfdi IsNot Nothing AndAlso cfdi.Mensaje = "" Then If cfdi IsNot Nothing AndAlso cfdi.Mensaje = "" Then
If Not cfdi.Timbrado Then If Not cfdi.Timbrado Then
Dim ObjTimbrado As New Timbrado Dim ObjTimbrado As New Timbrado
@@ -28,7 +28,7 @@ Public Class LogicNominas
ObjFactura.Folio = cfdi.Comprobante.Folio.ToEntero() ObjFactura.Folio = cfdi.Comprobante.Folio.ToEntero()
ObjFactura.Serie = cfdi.Comprobante.Serie ObjFactura.Serie = cfdi.Comprobante.Serie
ObjFactura.Timbre = cfdi ObjFactura.Timbre = cfdi
If Not ObjTimbrado.TimbrarFactura(UsuarioActual, ObjFactura, CvePAC) Then If Not ObjTimbrado.TimbrarFactura(UsuarioActual, ObjFactura, CvePAC, versionTimbre) Then
Retorno = ObjTimbrado.MensajeErrorCFDI Retorno = ObjTimbrado.MensajeErrorCFDI
End If End If
End If End If
@@ -37,7 +37,7 @@ Public Class LogicNominas
Else Else
If hasfiniquito Then If hasfiniquito Then
cfdi = PreTimbrar(CveNomina, UsuarioActual, True) 'CvePersonal, CvePeriodo, cfdi = PreTimbrar(CveNomina, UsuarioActual, True, versionTimbre) 'CvePersonal, CvePeriodo,
If cfdi IsNot Nothing AndAlso cfdi.Mensaje = "" Then If cfdi IsNot Nothing AndAlso cfdi.Mensaje = "" Then
If Not cfdi.Timbrado Then If Not cfdi.Timbrado Then
@@ -47,7 +47,7 @@ Public Class LogicNominas
ObjFactura.Folio = cfdi.Comprobante.Folio.ToEntero() ObjFactura.Folio = cfdi.Comprobante.Folio.ToEntero()
ObjFactura.Serie = cfdi.Comprobante.Serie ObjFactura.Serie = cfdi.Comprobante.Serie
ObjFactura.Timbre = cfdi ObjFactura.Timbre = cfdi
If Not ObjTimbrado.TimbrarFactura(UsuarioActual, ObjFactura, CvePAC) Then If Not ObjTimbrado.TimbrarFactura(UsuarioActual, ObjFactura, CvePAC, versionTimbre) Then
Retorno = ObjTimbrado.MensajeErrorCFDI Retorno = ObjTimbrado.MensajeErrorCFDI
End If End If
If Retorno <> "" Then If Retorno <> "" Then
@@ -81,7 +81,13 @@ Public Class LogicNominas
Return Retorno Return Retorno
End Function End Function
Dim hasfiniquito As Boolean Dim hasfiniquito As Boolean
Public Function PreTimbrar(CveNomina As Integer, UsuarioActual As Usuario, TimbreIndemnizacion As Boolean) As CFDITimbre Public Function PreTimbrar(CveNomina As Integer, UsuarioActual As Usuario, TimbreIndemnizacion As Boolean, Optional versionTimbrex As VersionTimbradoEnum = VersionTimbradoEnum.PorDefectoEmpresa) As CFDITimbre
Dim versionTimbre As VersionTimbradoEnum = versionTimbrex
If versionTimbre = VersionTimbradoEnum.PorDefectoEmpresa Then
versionTimbre = If(UsuarioActual.Empresa.Funcionalidad(350) = "1", VersionTimbradoEnum.Version4_0, VersionTimbradoEnum.Version3_3)
End If
Dim continuar As Boolean = True Dim continuar As Boolean = True
hasfiniquito = False hasfiniquito = False
Dim CvePersonal As Integer = -1 Dim CvePersonal As Integer = -1
@@ -319,7 +325,7 @@ Public Class LogicNominas
End If End If
cfdi.Nomina.CveNomina = CveNomina cfdi.Nomina.CveNomina = CveNomina
cfdi.Receptor.UsoCFDI = If(UsuarioActual.Empresa.Funcionalidad(350).Contiene("1"), "CN01", "P01") cfdi.Receptor.UsoCFDI = If(versionTimbre = VersionTimbradoEnum.Version4_0, "CN01", "P01")
cfdi.Receptor.RFC = RFC cfdi.Receptor.RFC = RFC
cfdi.Receptor.Nombre = NombreCompleto cfdi.Receptor.Nombre = NombreCompleto
@@ -427,7 +433,7 @@ Public Class LogicNominas
If ObjDeducciones IsNot Nothing AndAlso ObjDeducciones.Count > 0 Then cfdi.Nomina.Deducciones = ObjDeducciones If ObjDeducciones IsNot Nothing AndAlso ObjDeducciones.Count > 0 Then cfdi.Nomina.Deducciones = ObjDeducciones
cfdi.Comprobante.Version = If(UsuarioActual.Empresa.Funcionalidad(350).Contiene("1"), "4.0", "3.3") cfdi.Comprobante.Version = If(versionTimbre = VersionTimbradoEnum.Version4_0, "4.0", "3.3")
cfdi.Comprobante.Serie = Serie cfdi.Comprobante.Serie = Serie
cfdi.Comprobante.Folio = Folio cfdi.Comprobante.Folio = Folio
cfdi.Comprobante.Fecha = Now cfdi.Comprobante.Fecha = Now
@@ -440,7 +446,7 @@ Public Class LogicNominas
cfdi.Comprobante.TipoDocto = "Egs" cfdi.Comprobante.TipoDocto = "Egs"
cfdi.Comprobante.MetodoPago = "PUE" cfdi.Comprobante.MetodoPago = "PUE"
cfdi.Comprobante.CondicionesdePago = "" '"CONTADO" cfdi.Comprobante.CondicionesdePago = "" '"CONTADO"
cfdi.Comprobante.FormadePago = If(UsuarioActual.Empresa.Funcionalidad(350).Contiene("1"), "", "99") cfdi.Comprobante.FormadePago = If(versionTimbre = VersionTimbradoEnum.Version4_0, "", "99")
cfdi.Comprobante.LugarExpedicion = UsuarioActual.Empresa.CP.ToString() ' AHORITA SOLO SE REQUIERE ESPECIFICAR EL CODIGO POSTAL cfdi.Comprobante.LugarExpedicion = UsuarioActual.Empresa.CP.ToString() ' AHORITA SOLO SE REQUIERE ESPECIFICAR EL CODIGO POSTAL
cfdi.Comprobante.NumCuentaPago = "" 'objPersonal.BancoNumCuenta cfdi.Comprobante.NumCuentaPago = "" 'objPersonal.BancoNumCuenta
'4.0 '4.0

View File

@@ -12,6 +12,12 @@ Imports Extensiones
Imports Newtonsoft.Json.Linq Imports Newtonsoft.Json.Linq
Imports ProfactCartaPorte = Profact.TimbraCFDI33.Complementos.CartaPorte20 Imports ProfactCartaPorte = Profact.TimbraCFDI33.Complementos.CartaPorte20
Public Enum VersionTimbradoEnum As Integer
PorDefectoEmpresa = -1
Version3_3 = 1
Version4_0 = 2
End Enum
Public Class Timbrado Public Class Timbrado
#Region "P R O P I E D A D E S" #Region "P R O P I E D A D E S"
@@ -1192,11 +1198,14 @@ Public Class Timbrado
Return Timbre Return Timbre
End Function End Function
Public Function TimbrarFactura(UsuarioActual As Usuario, Ventas As Modelos.Factura, Optional CvePACEspecial As Integer = -1) As Boolean Public Function TimbrarFactura(UsuarioActual As Usuario, Ventas As Modelos.Factura, Optional CvePACEspecial As Integer = -1, Optional versionTimbre As VersionTimbradoEnum = VersionTimbradoEnum.PorDefectoEmpresa) As Boolean
Dim Retorno As Boolean = False Dim Retorno As Boolean = False
Dim tCvePAC As Integer = UsuarioActual.Empresa.CvePAC Dim tCvePAC As Integer = UsuarioActual.Empresa.CvePAC
If CvePACEspecial <> -1 Then tCvePAC = CvePACEspecial If CvePACEspecial <> -1 Then tCvePAC = CvePACEspecial
If versionTimbre = VersionTimbradoEnum.PorDefectoEmpresa Then
versionTimbre = If(UsuarioActual.Empresa.Funcionalidad(350) = "1", VersionTimbradoEnum.Version4_0, VersionTimbradoEnum.Version3_3)
End If
'validación especial. 'validación especial.
If Ventas.TipoDocto.Contiene("Ing", "Dev") Then If Ventas.TipoDocto.Contiene("Ing", "Dev") Then
@@ -1228,15 +1237,15 @@ Public Class Timbrado
Retorno = If(Ret = "", True, False) Retorno = If(Ret = "", True, False)
Case 3 Case 3
If UsuarioActual.Empresa.Funcionalidad(350) = "1" Then If versionTimbre = VersionTimbradoEnum.Version4_0 Then
Retorno = TimbrarFacturaProFactv40(UsuarioActual, Ventas) Retorno = TimbrarFacturaProFactV40(UsuarioActual, Ventas)
Else Else
Retorno = TimbrarFacturaProFact(UsuarioActual, Ventas) Retorno = TimbrarFacturaProFact(UsuarioActual, Ventas)
End If End If
'Retorno = TimbrarFacturaProFact(UsuarioActual, Ventas, TmpDTConceptos, TmpDTImpuestos, TmpDTComplementos, Ruta, LstFordASN, FordGSDBM, ObjV) 'Retorno = TimbrarFacturaProFact(UsuarioActual, Ventas, TmpDTConceptos, TmpDTImpuestos, TmpDTComplementos, Ruta, LstFordASN, FordGSDBM, ObjV)
Case 4 Case 4
If UsuarioActual.Empresa.Funcionalidad(350) = "1" Then If versionTimbre = VersionTimbradoEnum.Version4_0 Then
Dim Ret As String = TimbrarFacturaGoCFDIv40(Ventas, UsuarioActual, CvePACEspecial) Dim Ret As String = TimbrarFacturaGoCFDIv40(Ventas, UsuarioActual, CvePACEspecial)
If Ret <> "" Then MensajeErrorCFDI = Ret If Ret <> "" Then MensajeErrorCFDI = Ret
Retorno = If(Ret = "", True, False) Retorno = If(Ret = "", True, False)
@@ -1248,7 +1257,7 @@ Public Class Timbrado
Case 5 Case 5
If UsuarioActual.Empresa.Funcionalidad(350) = "1" Then If versionTimbre = VersionTimbradoEnum.Version4_0 Then
Dim Ret As String = TimbrarFacturaPADEv40(Ventas, UsuarioActual, CvePACEspecial) Dim Ret As String = TimbrarFacturaPADEv40(Ventas, UsuarioActual, CvePACEspecial)
If Ret <> "" Then MensajeErrorCFDI = Ret If Ret <> "" Then MensajeErrorCFDI = Ret
Retorno = If(Ret = "", True, False) Retorno = If(Ret = "", True, False)

View File

@@ -75,34 +75,12 @@ public partial class Nomina_Finiquito : ClsPaginas
} }
set { ViewState["dtempleados"] = value; } set { ViewState["dtempleados"] = value; }
} }
private HybridDictionary EmpresasFuncionalidades
{
get
{
if (ViewState["EmpresasFuncionalidades"] == null) { return null; }
else { return (HybridDictionary)ViewState["EmpresasFuncionalidades"]; }
}
set { ViewState["EmpresasFuncionalidades"] = value; }
}
private HybridDictionary EmpresasFuncionalidadesnoV4
{
get
{
if (ViewState["EmpresasFuncionalidadesnoV4"] == null) { return null; }
else { return (HybridDictionary)ViewState["EmpresasFuncionalidadesnoV4"]; }
}
set { ViewState["EmpresasFuncionalidadesnoV4"] = value; }
}
#endregion #endregion
protected void Page_Load(object sender, EventArgs e) protected void Page_Load(object sender, EventArgs e)
{ {
if (!Page.IsPostBack) if (!Page.IsPostBack)
{ {
CreaObjetoEmpresa(UsuarioActual);
GvFinOrdinario.DataSource = new DataTable(); GvFinOrdinario.DataSource = new DataTable();
GVFinIndemnizacion.DataSource = new DataTable(); GVFinIndemnizacion.DataSource = new DataTable();
GvFinOrdinario.DataBind(); GvFinOrdinario.DataBind();
@@ -552,109 +530,6 @@ public partial class Nomina_Finiquito : ClsPaginas
// } // }
//} //}
private void CreaObjetoEmpresa(Usuario UsuarioActual)
{
ClsSisEmpresas ObjEmpresa = new ClsSisEmpresas();
if (ObjEmpresa.GetEmpresas(UsuarioActual.CveEmpresa, "-1", "-1", "-1", "-1"))
{
if (ObjEmpresa.GetEmpresasFuncionalidades(UsuarioActual.CveEmpresa))
{
System.Data.DataTable dttmp = ObjEmpresa.DtResultados;
EmpresasFuncionalidades = new HybridDictionary();
EmpresasFuncionalidadesnoV4 = new HybridDictionary();
foreach (System.Data.DataRow Row in dttmp.Rows)
{
if (Convert.ToInt32(Row["CveFuncionalidad"]) != 350)
{
EmpresasFuncionalidadesnoV4.Add(Convert.ToInt32(Row["CveFuncionalidad"]), Row["Valor"].ToString());
}
EmpresasFuncionalidades.Add(Convert.ToInt32(Row["CveFuncionalidad"]), Row["Valor"].ToString());
}
//ObjEmpresa.Empresa.SetFuncionalidades(EmpresasFuncionalidades);
}
UsuarioActual.Empresa = ObjEmpresa.Empresa;
}
else
{
}
ObjEmpresa.Dispose();
}
public string TimbrarNominaV3_3(int CveNomina, int CvePersonal, int CvePeriodo, Usuario UsuarioActual, int CvePAC = 4)
{
LogicNominas lnom = new LogicNominas();
string Retorno = "";
string GetError = ""; // Le reasigno el current error a nulo
//System.Diagnostics.Stopwatch sw = null;
bool hasfiniquito = false;
UsuarioActual.Empresa.SetFuncionalidades(EmpresasFuncionalidadesnoV4);
//if (guardarLogTimbrado)
//{
// sw = new System.Diagnostics.Stopwatch();
// sw.Start();
//}
CFDITimbre cfdi = lnom.PreTimbrar(CveNomina, UsuarioActual, false); // CvePersonal, CvePeriodo,
cfdi.Comprobante.CondicionesdePago = "";
if (cfdi != null && cfdi.Mensaje == "")
{
if (!cfdi.Timbrado)
{
Timbrado ObjTimbrado = new Timbrado();
Modelos.Factura ObjFactura = new Modelos.Factura();
ObjFactura.TipoDocto = "Nomina";
ObjFactura.Folio = cfdi.Comprobante.Folio.ToEntero();
ObjFactura.Serie = cfdi.Comprobante.Serie;
ObjFactura.Timbre = cfdi;
if (!ObjTimbrado.TimbrarFactura(UsuarioActual, ObjFactura, CvePAC))
Retorno = ObjTimbrado.MensajeErrorCFDI;
}
if (Retorno != "")
Retorno = $"{Retorno} - {cfdi.Receptor.Nombre}";
else if (hasfiniquito)
{
cfdi = lnom.PreTimbrar(CveNomina, UsuarioActual, true); // CvePersonal, CvePeriodo,
if (cfdi != null && cfdi.Mensaje == "")
{
if (!cfdi.Timbrado)
{
Timbrado ObjTimbrado = new Timbrado();
Modelos.Factura ObjFactura = new Modelos.Factura();
ObjFactura.TipoDocto = "Nomina";
ObjFactura.Folio = cfdi.Comprobante.Folio.ToEntero();
ObjFactura.Serie = cfdi.Comprobante.Serie;
ObjFactura.Timbre = cfdi;
if (!ObjTimbrado.TimbrarFactura(UsuarioActual, ObjFactura, CvePAC))
Retorno = ObjTimbrado.MensajeErrorCFDI;
if (Retorno != "")
Retorno = $"{Retorno} - {cfdi.Receptor.Nombre}";
else
{
}
}
}
else if (cfdi == null)
Retorno = $"No se pudo generar el pretimbre(GetError): <br/> {GetError}";
else
Retorno = $"No se pudo generar el pretimbre: <br/> {cfdi.Mensaje}";
}
}
else if (cfdi == null)
Retorno = $"No se pudo generar el pretimbre(GetError): <br/> {GetError}";
else
Retorno = $"No se pudo generar el pretimbre: <br/> {cfdi.Mensaje}";
//if (guardarLogTimbrado)
//{
// sw.Stop();
// GuardaLogTimbrado(sw.ElapsedMilliseconds.ToString(), UsuarioActual.Empresa.CvePAC, "Nomina");
//}
UsuarioActual.Empresa.SetFuncionalidades(EmpresasFuncionalidades);
return Retorno;
}
protected void LnkTimbrar_Click(object sender, EventArgs e) protected void LnkTimbrar_Click(object sender, EventArgs e)
{ {
int CvePeriodo = CvePeriodoFiniquito; int CvePeriodo = CvePeriodoFiniquito;
@@ -667,14 +542,8 @@ public partial class Nomina_Finiquito : ClsPaginas
string Msg = ""; string Msg = "";
if (UsuarioActual.CveEmpresa == 119) Msg = lognom.TimbrarNomina(CveNomina, CvePersonal, CvePeriodo, UsuarioActual,versionTimbre:(UsuarioActual.CveEmpresa == 119? VersionTimbradoEnum.PorDefectoEmpresa: VersionTimbradoEnum.Version3_3));
{
Msg = lognom.TimbrarNomina(CveNomina, CvePersonal, CvePeriodo, UsuarioActual);
}
else
{
Msg = TimbrarNominaV3_3(CveNomina, CvePersonal, CvePeriodo, UsuarioActual);
}
if (Msg != null && Msg.Length > 0) if (Msg != null && Msg.Length > 0)
{ Alert(Msg, TipoMensaje.MsgAdvertencia); } { Alert(Msg, TipoMensaje.MsgAdvertencia); }
else else

View File

@@ -208,27 +208,27 @@ public partial class Nomina_Nomina2 : ClsPaginas
} }
private HybridDictionary EmpresasFuncionalidades //private HybridDictionary EmpresasFuncionalidades
{ //{
get // get
{ // {
if (ViewState["EmpresasFuncionalidades"] == null) { return null; } // if (ViewState["EmpresasFuncionalidades"] == null) { return null; }
else { return (HybridDictionary)ViewState["EmpresasFuncionalidades"]; } // else { return (HybridDictionary)ViewState["EmpresasFuncionalidades"]; }
} // }
set { ViewState["EmpresasFuncionalidades"] = value; } // set { ViewState["EmpresasFuncionalidades"] = value; }
} //}
private HybridDictionary EmpresasFuncionalidadesnoV4 //private HybridDictionary EmpresasFuncionalidadesnoV4
{ //{
get // get
{ // {
if (ViewState["EmpresasFuncionalidadesnoV4"] == null) { return null; } // if (ViewState["EmpresasFuncionalidadesnoV4"] == null) { return null; }
else { return (HybridDictionary)ViewState["EmpresasFuncionalidadesnoV4"]; } // else { return (HybridDictionary)ViewState["EmpresasFuncionalidadesnoV4"]; }
} // }
set { ViewState["EmpresasFuncionalidadesnoV4"] = value; } // set { ViewState["EmpresasFuncionalidadesnoV4"] = value; }
} //}
#endregion #endregion
protected void Page_Load(object sender, EventArgs e) protected void Page_Load(object sender, EventArgs e)
@@ -236,7 +236,10 @@ public partial class Nomina_Nomina2 : ClsPaginas
if (!IsPostBack) if (!IsPostBack)
{ {
CreaObjetoEmpresa(UsuarioActual); if(UsuarioActual.CveUsuario == 100) {
Alert("recuerda que solo la empresa (119) tiene activado el timbrado 4.0", TipoMensaje.ToastAdventencia);
}
//CreaObjetoEmpresa(UsuarioActual);
DataTable dtperinc = null; DataTable dtperinc = null;
using (ClsNominas objnom = new ClsNominas()) using (ClsNominas objnom = new ClsNominas())
{ {
@@ -1280,15 +1283,9 @@ public partial class Nomina_Nomina2 : ClsPaginas
{ {
LogicNominas lognom = new LogicNominas(); LogicNominas lognom = new LogicNominas();
string Msg = ""; string Msg = "";
if (UsuarioActual.CveEmpresa == 119) Msg = lognom.TimbrarNomina(CveNomina, CvePersonal, CvePeriodo, UsuarioActual, versionTimbre: (UsuarioActual.CveEmpresa == 119 ? VersionTimbradoEnum.PorDefectoEmpresa : VersionTimbradoEnum.Version3_3));
{
Msg = lognom.TimbrarNomina(CveNomina, CvePersonal, CvePeriodo, UsuarioActual);
}
else
{
Msg = TimbrarNominaV3_3(CveNomina, CvePersonal, CvePeriodo, UsuarioActual);
}
if (Msg != null && Msg.Length > 0) if (Msg != null && Msg.Length > 0)
{ {
Msg = msgCorregidoSat(Msg, CvePersonal, RFC, CURP); Msg = msgCorregidoSat(Msg, CvePersonal, RFC, CURP);
@@ -1344,35 +1341,40 @@ public partial class Nomina_Nomina2 : ClsPaginas
} }
UpDatos.Update(); UpDatos.Update();
} }
private void CreaObjetoEmpresa(Usuario UsuarioActual) //private void CreaObjetoEmpresa(Usuario UsuarioActual)
{ //{
ClsSisEmpresas ObjEmpresa = new ClsSisEmpresas(); // ClsSisEmpresas ObjEmpresa = new ClsSisEmpresas();
if (ObjEmpresa.GetEmpresas(UsuarioActual.CveEmpresa, "-1", "-1", "-1", "-1")) // if (ObjEmpresa.GetEmpresas(UsuarioActual.CveEmpresa, "-1", "-1", "-1", "-1"))
{ // {
if (ObjEmpresa.GetEmpresasFuncionalidades(UsuarioActual.CveEmpresa)) // if (ObjEmpresa.GetEmpresasFuncionalidades(UsuarioActual.CveEmpresa))
{ // {
System.Data.DataTable dttmp = ObjEmpresa.DtResultados; // System.Data.DataTable dttmp = ObjEmpresa.DtResultados;
EmpresasFuncionalidades = new HybridDictionary(); // EmpresasFuncionalidades = new HybridDictionary();
EmpresasFuncionalidadesnoV4 = new HybridDictionary(); // EmpresasFuncionalidadesnoV4 = new HybridDictionary();
foreach (System.Data.DataRow Row in dttmp.Rows) // foreach (System.Data.DataRow Row in dttmp.Rows)
{ // {
if (Convert.ToInt32(Row["CveFuncionalidad"]) != 350) // if (Convert.ToInt32(Row["CveFuncionalidad"]) != 350)
{ // {
EmpresasFuncionalidadesnoV4.Add(Convert.ToInt32(Row["CveFuncionalidad"]), Row["Valor"].ToString()); // EmpresasFuncionalidadesnoV4.Add(Convert.ToInt32(Row["CveFuncionalidad"]), Row["Valor"].ToString());
} // EmpresasFuncionalidades.Add(Convert.ToInt32(Row["CveFuncionalidad"]), Row["Valor"].ToString());
EmpresasFuncionalidades.Add(Convert.ToInt32(Row["CveFuncionalidad"]), Row["Valor"].ToString()); // }
} // else
//ObjEmpresa.Empresa.SetFuncionalidades(EmpresasFuncionalidades); // {
} // EmpresasFuncionalidades.Add(Convert.ToInt32(Row["CveFuncionalidad"]), Row["Valor"].ToString());
UsuarioActual.Empresa = ObjEmpresa.Empresa; // }
} // }
else // ObjEmpresa.Empresa.SetFuncionalidades(EmpresasFuncionalidades);
{ // }
}
ObjEmpresa.Dispose(); // UsuarioActual.Empresa = ObjEmpresa.Empresa;
} // }
// else
// {
// }
// ObjEmpresa.Dispose();
//}
protected void LnkReenviarCorreo_Click(object sender, EventArgs e) protected void LnkReenviarCorreo_Click(object sender, EventArgs e)
{ {
LinkButton lnk = (LinkButton)sender; LinkButton lnk = (LinkButton)sender;
@@ -1468,14 +1470,8 @@ public partial class Nomina_Nomina2 : ClsPaginas
UsuarioActual = this.UsuarioActual; UsuarioActual = this.UsuarioActual;
}*/ }*/
string Msg = "";// lognom.TimbrarNomina(CveNomina, CvePersonal, CvePeriodo, UsuarioActual, (UsuarioActual.CveUsuario == 100 ? 4 : 4)); string Msg = "";// lognom.TimbrarNomina(CveNomina, CvePersonal, CvePeriodo, UsuarioActual, (UsuarioActual.CveUsuario == 100 ? 4 : 4));
if (UsuarioActual.CveEmpresa == 119) Msg = lognom.TimbrarNomina(CveNomina, CvePersonal, CvePeriodo, UsuarioActual, versionTimbre: (UsuarioActual.CveEmpresa == 119 ? VersionTimbradoEnum.PorDefectoEmpresa : VersionTimbradoEnum.Version3_3));
{
Msg = lognom.TimbrarNomina(CveNomina, CvePersonal, CvePeriodo, UsuarioActual);
}
else
{
Msg = TimbrarNominaV3_3(CveNomina, CvePersonal, CvePeriodo, UsuarioActual);
}
if (Msg != null && Msg.Length > 0) if (Msg != null && Msg.Length > 0)
{ Alert(string.Format("El empleado no se pudo timbrar, el sat nos devolvio el siguiente mensaje:<br/>{0}", Msg), TipoMensaje.MsgAdvertencia); } { Alert(string.Format("El empleado no se pudo timbrar, el sat nos devolvio el siguiente mensaje:<br/>{0}", Msg), TipoMensaje.MsgAdvertencia); }
else else
@@ -9131,79 +9127,5 @@ public partial class Nomina_Nomina2 : ClsPaginas
RegistraScript(string.Format("$('#ModalViewCorreo').modal();", TxtmcImporte.ClientID)); RegistraScript(string.Format("$('#ModalViewCorreo').modal();", TxtmcImporte.ClientID));
} }
public string TimbrarNominaV3_3(int CveNomina, int CvePersonal, int CvePeriodo, Usuario UsuarioActual, int CvePAC = 4)
{
LogicNominas lnom = new LogicNominas();
string Retorno = "";
string GetError = ""; // Le reasigno el current error a nulo
//System.Diagnostics.Stopwatch sw = null;
bool hasfiniquito = false;
UsuarioActual.Empresa.SetFuncionalidades(EmpresasFuncionalidadesnoV4);
//if (guardarLogTimbrado)
//{
// sw = new System.Diagnostics.Stopwatch();
// sw.Start();
//}
CFDITimbre cfdi = lnom.PreTimbrar(CveNomina, UsuarioActual, false); // CvePersonal, CvePeriodo,
cfdi.Comprobante.CondicionesdePago = "";
if (cfdi != null && cfdi.Mensaje == "")
{
if (!cfdi.Timbrado)
{
Timbrado ObjTimbrado = new Timbrado();
Modelos.Factura ObjFactura = new Modelos.Factura();
ObjFactura.TipoDocto = "Nomina";
ObjFactura.Folio = cfdi.Comprobante.Folio.ToEntero();
ObjFactura.Serie = cfdi.Comprobante.Serie;
ObjFactura.Timbre = cfdi;
if (!ObjTimbrado.TimbrarFactura(UsuarioActual, ObjFactura, CvePAC))
Retorno = ObjTimbrado.MensajeErrorCFDI;
}
if (Retorno != "")
Retorno = $"{Retorno} - {cfdi.Receptor.Nombre}";
else if (hasfiniquito)
{
cfdi = lnom.PreTimbrar(CveNomina, UsuarioActual, true); // CvePersonal, CvePeriodo,
if (cfdi != null && cfdi.Mensaje == "")
{
if (!cfdi.Timbrado)
{
Timbrado ObjTimbrado = new Timbrado();
Modelos.Factura ObjFactura = new Modelos.Factura();
ObjFactura.TipoDocto = "Nomina";
ObjFactura.Folio = cfdi.Comprobante.Folio.ToEntero();
ObjFactura.Serie = cfdi.Comprobante.Serie;
ObjFactura.Timbre = cfdi;
if (!ObjTimbrado.TimbrarFactura(UsuarioActual, ObjFactura, CvePAC))
Retorno = ObjTimbrado.MensajeErrorCFDI;
if (Retorno != "")
Retorno = $"{Retorno} - {cfdi.Receptor.Nombre}";
else
{
}
}
}
else if (cfdi == null)
Retorno = $"No se pudo generar el pretimbre(GetError): <br/> {GetError}";
else
Retorno = $"No se pudo generar el pretimbre: <br/> {cfdi.Mensaje}";
}
}
else if (cfdi == null)
Retorno = $"No se pudo generar el pretimbre(GetError): <br/> {GetError}";
else
Retorno = $"No se pudo generar el pretimbre: <br/> {cfdi.Mensaje}";
//if (guardarLogTimbrado)
//{
// sw.Stop();
// GuardaLogTimbrado(sw.ElapsedMilliseconds.ToString(), UsuarioActual.Empresa.CvePAC, "Nomina");
//}
UsuarioActual.Empresa.SetFuncionalidades(EmpresasFuncionalidades);
return Retorno;
}
} }

View File

@@ -515,14 +515,14 @@
<div class="row"> <div class="row">
<div class="col-md-12"> <div class="col-md-12">
<div class="form-group form-md-line-input input-iconright"> <div class="form-group form-md-line-input input-iconright">
<asp:DropDownList ID="DdlEmpacado" CssClass="form-control input-sm select2me" runat="server" AppendDataBoundItems="true" DataTextField="Modelo" DataValueField="CveModelo" Height="22px"> <asp:DropDownList ID="DdlEmpacado" CssClass="form-control input-sm select2me" runat="server" AppendDataBoundItems="true" DataTextField="TipoEmpacado" DataValueField="CveTipoEmpacado" Height="22px">
<asp:ListItem Text="Seleccione" Value="-1"></asp:ListItem> <asp:ListItem Text="Seleccione" Value="-1"></asp:ListItem>
</asp:DropDownList> </asp:DropDownList>
<label for="<%= DdlEmpacado.ClientID.ToString()%>">Empacado:</label> <label for="<%= DdlEmpacado.ClientID.ToString()%>">Empacado:</label>
<i></i> <i></i>
</div> </div>
<div class="form-group form-md-line-input input-iconright"> <div class="form-group form-md-line-input input-iconright">
<asp:DropDownList ID="DdlTipoOrganico" CssClass="form-control input-sm select2me" runat="server" AppendDataBoundItems="true" DataTextField="Medida" DataValueField="CveMedida" Height="22px"> <asp:DropDownList ID="DdlTipoOrganico" CssClass="form-control input-sm select2me" runat="server" AppendDataBoundItems="true" DataTextField="TipoOrganico" DataValueField="CveTipoOrganico" Height="22px">
<asp:ListItem Text="Seleccione" Value="-1"></asp:ListItem> <asp:ListItem Text="Seleccione" Value="-1"></asp:ListItem>
</asp:DropDownList> </asp:DropDownList>
<label for="<%= DdlTipoOrganico.ClientID.ToString()%>">Tipo Orgánico:</label> <label for="<%= DdlTipoOrganico.ClientID.ToString()%>">Tipo Orgánico:</label>

View File

@@ -440,10 +440,10 @@ Partial Class ProductosyServicios
Private Sub CargaPanelCitricos() Private Sub CargaPanelCitricos()
Dim ObjGral As New ClsGenerales() Dim ObjGral As New ClsGenerales()
If ObjGral.GetEmpacados(UsuarioActual.CveEmpresa) Then If ObjGral.GetEmpacados(UsuarioActual.CveEmpresa) Then
DdlEmpacado.DataSource = ObjGral.DtResultados.Copy() DdlEmpacado.DataSource = ObjGral.DtResultados
End If End If
If ObjGral.GetTipoOrganicos(UsuarioActual.CveEmpresa) Then If ObjGral.GetTipoOrganicos(UsuarioActual.CveEmpresa) Then
DdlTipoOrganico.DataSource = ObjGral.DtResultados.Copy() DdlTipoOrganico.DataSource = ObjGral.DtResultados
End If End If
ObjGral.Dispose() ObjGral.Dispose()

590
vwd.webinfo Normal file
View File

@@ -0,0 +1,590 @@
<?xml version="1.0"?>
<!--
Visual Studio global web project settings.
-->
<VisualWebDeveloper>
<StartupServices>
<Service ID="{C0C07587-41A7-46C8-8FBD-3F9C8EBE2DDC}"/>
</StartupServices>
</VisualWebDeveloper>