diff --git a/AF/CatActividades.aspx b/AF/CatActividades.aspx new file mode 100644 index 000000000..907d6a766 --- /dev/null +++ b/AF/CatActividades.aspx @@ -0,0 +1,82 @@ +<%@ Page Title="AF - Catálogo de Actividades" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true" CodeFile="CatActividades.aspx.cs" Inherits="AF_CatActividades" %> + +<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="asp" %> + + + + + + + + Catálogo de Actividadedes + + + + +
  • + +
  • + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/AF/CatActividades.aspx.cs b/AF/CatActividades.aspx.cs new file mode 100644 index 000000000..8336030ab --- /dev/null +++ b/AF/CatActividades.aspx.cs @@ -0,0 +1,110 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Web; +using System.Web.UI; +using System.Web.UI.WebControls; +using Extensiones; +using System.Data; + +public partial class AF_CatActividades : ClsPaginas +{ + private int CveActividad + { + get + { + return ViewState["CveActividad"].ToString().ToEntero(); + } + + set + { + ViewState["CveActividad"] = value; + } + } + + protected void Page_Load(object sender, EventArgs e) + { + if (!IsPostBack) + { + CargaDatos(); + } + } + + private void CargaDatos() + { + ClsAF ObjAF = new ClsAF(); + if (ObjAF.GetActividades(-1, -1, -1, UsuarioActual.CveEmpresa)) + { + GvDatos.DataSource = ObjAF.DtResultados; + GvDatos.DataBind(); + } + DdlPuesto.DataSource = get_GlobalDTRHPuestos(UsuarioActual.CveEmpresa); + DdlPuesto.DataBind(); + DdlPuesto.Items.Insert(0,new ListItem("-1","Seleccione")); + ObjAF.Dispose(); + } + + protected void BtnAgregarActividadD_Click(object sender, EventArgs e) + { + BtnAgregarActividad.Text = "Agregar"; + TxtNombre.Text = ""; + DdlPuesto.SelectedValueExist(-1); + TxtCantidad.Text = ""; + UpModalTiposD.Update(); + RegistraScript(String.Format("$('#{0}').modal();", "DivAgregarActividadD")); + } + + protected void LnkEditar_Click(object sender, EventArgs e) + { + BtnAgregarActividad.Text = "Actualizar"; + GridViewRow GvRow = (GridViewRow)(((LinkButton)sender).NamingContainer); + CveActividad = GvRow.DataKey("CveActividad").ToEntero(); + TxtNombre.Text = GvRow.DataKey("Nombre"); + DdlPuesto.SelectedValueExist(GvRow.DataKey("CvePuesto")); + TxtCantidad.Text = GvRow.DataKey("Cantidad"); + UpModalTiposD.Update(); + RegistraScript(String.Format("$('#{0}').modal();", "DivAgregarActividadD")); + } + + protected void LnkEliminar_Click(object sender, EventArgs e) + { + GridViewRow GvRow = (GridViewRow)(((LinkButton)sender).NamingContainer); + CveActividad = GvRow.DataKey("CveActividad").ToEntero(); + ClsAF ObjAF = new ClsAF(); + if (ObjAF.DeleteActividades(CveActividad)) + { + CargaDatos(); + UpDatos.Update(); + RegistraScript(String.Format("$('#{0}').modal('hide');", "DivAgregarActividadD")); + Alert("Se eliminó la Actividad correctamente"); + } + ObjAF.Dispose(); + } + + protected void BtnAgregarActividad_Click(object sender, EventArgs e) + { + ClsAF ObjAF = new ClsAF(); + if (BtnAgregarActividad.Text == "Agregar") + { + if (ObjAF.AddActividades(TxtNombre.Text, DdlPuesto.SelectedValue.ToEntero(),TxtCantidad.Text.ToDecimal(), UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa)) + { + CargaDatos(); + UpDatos.Update(); + RegistraScript(String.Format("$('#{0}').modal('hide');", "DivAgregarActividadD")); + Alert("Se agregó la Actividad correctamente"); + } + } + else + { + if (ObjAF.UpdateActividades(CveActividad,TxtNombre.Text, DdlPuesto.SelectedValue.ToEntero(), TxtCantidad.Text.ToDecimal(), UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa)) + { + CargaDatos(); + UpDatos.Update(); + RegistraScript(String.Format("$('#{0}').modal('hide');", "DivAgregarActividadD")); + Alert("Se actualizó la Actividad correctamente"); + } + } + ObjAF.Dispose(); + RegistraScript(String.Format("$('#{0}').modal('hide');", "DivAgregarActividadD")); + } +} \ No newline at end of file diff --git a/AF/CatCheckListActividadesGrupos.aspx b/AF/CatCheckListActividadesGrupos.aspx new file mode 100644 index 000000000..77121933f --- /dev/null +++ b/AF/CatCheckListActividadesGrupos.aspx @@ -0,0 +1,70 @@ +<%@ Page Title="AF - Catálogo de Grupos de CheckLists" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true" CodeFile="CatCheckListActividadesGrupos.aspx.cs" Inherits="AF_CatCheckListActividadesGrupos" %> + +<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="asp" %> + + + + + + + + Catálogo de Grupos de CheckLists + + + + +
  • + +
  • + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/AF/CatCheckListActividadesGrupos.aspx.cs b/AF/CatCheckListActividadesGrupos.aspx.cs new file mode 100644 index 000000000..516ccb505 --- /dev/null +++ b/AF/CatCheckListActividadesGrupos.aspx.cs @@ -0,0 +1,100 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Web; +using System.Web.UI; +using System.Web.UI.WebControls; +using Extensiones; +using System.Data; + +public partial class AF_CatCheckListActividadesGrupos : ClsPaginas +{ + private int CveCheckListActividadGrupo + { + get + { + return ViewState["CveCheckListActividadGrupo"].ToString().ToEntero(); + } + + set + { + ViewState["CveCheckListActividadGrupo"] = value; + } + } + + protected void Page_Load(object sender, EventArgs e) + { + if (!IsPostBack) + { + CargaDatos(); + } + } + + private void CargaDatos() + { + ClsAF ObjAF = new ClsAF(); + if (ObjAF.GetCheckListActividadGrupo(-1)) + { + GvDatos.DataSource = ObjAF.DtResultados; + GvDatos.DataBind(); + } + + ObjAF.Dispose(); + } + + protected void BtnAgregarGrupoCheckListD_Click(object sender, EventArgs e) + { + BtnAgregarGrupoCheckList.Text = "Agregar"; + TxtGrupoCheckList.Text = ""; + UpModalTiposD.Update(); + RegistraScript(String.Format("$('#{0}').modal();", "DivAgregarGrupoCheckListD")); + } + + protected void LnkEditar_Click(object sender, EventArgs e) + { + BtnAgregarGrupoCheckList.Text = "Actualizar"; + GridViewRow GvRow = (GridViewRow)(((LinkButton)sender).NamingContainer); + CveCheckListActividadGrupo = GvRow.DataKey("CveCheckListActividadGrupo").ToEntero(); + TxtGrupoCheckList.Text = GvRow.DataKey("CheckListActividadGrupo"); + UpModalTiposD.Update(); + RegistraScript(String.Format("$('#{0}').modal();", "DivAgregarGrupoCheckListD")); + } + + protected void LnkEliminar_Click(object sender, EventArgs e) + { + GridViewRow GvRow = (GridViewRow)(((LinkButton)sender).NamingContainer); + CveCheckListActividadGrupo = GvRow.DataKey("CveCheckListActividadGrupo").ToEntero(); + ClsAF ObjAF = new ClsAF(); + if (ObjAF.DeleteCheckListActividadGrupo(CveCheckListActividadGrupo)) + { + CargaDatos(); + UpDatos.Update(); + RegistraScript(String.Format("$('#{0}').modal('hide');", "DivAgregarGrupoCheckListD")); + Alert("Se eliminó el Grupo de CheckList correctamente"); + } + ObjAF.Dispose(); + } + + protected void BtnAgregarGrupoCheckList_Click(object sender, EventArgs e) + { + ClsAF ObjAF = new ClsAF(); + if (BtnAgregarGrupoCheckList.Text == "Agregar") + { + if (ObjAF.AddCheckListActividadGrupo(TxtGrupoCheckList.Text)) + { + Alert("Se agregó el Grupo de CheckList correctamente"); + } + } + else + { + if (ObjAF.UpdateCheckListActividadGrupo(CveCheckListActividadGrupo, TxtGrupoCheckList.Text)) + { + Alert("Se actualizó el Grupo de CheckList correctamente"); + } + } + ObjAF.Dispose(); + CargaDatos(); + UpDatos.Update(); + RegistraScript(String.Format("$('#{0}').modal('hide');", "DivAgregarGrupoCheckListD")); + } +} \ No newline at end of file diff --git a/AF/CatCheckListTipo.aspx b/AF/CatCheckListTipo.aspx new file mode 100644 index 000000000..518b59864 --- /dev/null +++ b/AF/CatCheckListTipo.aspx @@ -0,0 +1,70 @@ +<%@ Page Title="AF - Catálogo de Tipos de CheckLists" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true" CodeFile="CatCheckListTipo.aspx.cs" Inherits="AF_CatCheckListTipo" %> + +<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="asp" %> + + + + + + + + Catálogo de Tipos de CheckLists + + + + +
  • + +
  • + +
    +
    +
    + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/AF/CatCheckListTipo.aspx.cs b/AF/CatCheckListTipo.aspx.cs new file mode 100644 index 000000000..f3cdafa22 --- /dev/null +++ b/AF/CatCheckListTipo.aspx.cs @@ -0,0 +1,100 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Web; +using System.Web.UI; +using System.Web.UI.WebControls; +using Extensiones; +using System.Data; + +public partial class AF_CatCheckListTipo : ClsPaginas +{ + private int CveCheckListTipo + { + get + { + return ViewState["CveCheckListTipo"].ToString().ToEntero(); + } + + set + { + ViewState["CveCheckListTipo"] = value; + } + } + + protected void Page_Load(object sender, EventArgs e) + { + if (!IsPostBack) + { + CargaDatos(); + } + } + + private void CargaDatos() + { + ClsAF ObjAF = new ClsAF(); + if (ObjAF.GetCheckListTipo(-1)) + { + GvDatos.DataSource = ObjAF.DtResultados; + GvDatos.DataBind(); + } + + ObjAF.Dispose(); + } + + protected void BtnAgregarTipoCheckListD_Click(object sender, EventArgs e) + { + BtnAgregarTipoCheckList.Text = "Agregar"; + TxtTipoCheckList.Text = ""; + UpModalTiposD.Update(); + RegistraScript(String.Format("$('#{0}').modal();", "DivAgregarGrupoCheckListD")); + } + + protected void LnkEditar_Click(object sender, EventArgs e) + { + BtnAgregarTipoCheckList.Text = "Actualizar"; + GridViewRow GvRow = (GridViewRow)(((LinkButton)sender).NamingContainer); + CveCheckListTipo = GvRow.DataKey("CveCheckListTipo").ToEntero(); + TxtTipoCheckList.Text = GvRow.DataKey("CheckListTipo"); + UpModalTiposD.Update(); + RegistraScript(String.Format("$('#{0}').modal();", "DivAgregarGrupoCheckListD")); + } + + protected void LnkEliminar_Click(object sender, EventArgs e) + { + GridViewRow GvRow = (GridViewRow)(((LinkButton)sender).NamingContainer); + CveCheckListTipo = GvRow.DataKey("CveCheckListTipo").ToEntero(); + ClsAF ObjAF = new ClsAF(); + if (ObjAF.DeleteCheckListTipo(CveCheckListTipo)) + { + CargaDatos(); + UpDatos.Update(); + RegistraScript(String.Format("$('#{0}').modal('hide');", "DivAgregarGrupoCheckListD")); + Alert("Se eliminó el Grupo de CheckList correctamente"); + } + ObjAF.Dispose(); + } + + protected void BtnAgregarTipoCheckList_Click(object sender, EventArgs e) + { + ClsAF ObjAF = new ClsAF(); + if (BtnAgregarTipoCheckList.Text == "Agregar") + { + if (ObjAF.AddCheckListTipo(TxtTipoCheckList.Text)) + { + Alert("Se agregó el Tipo de CheckList correctamente"); + } + } + else + { + if (ObjAF.UpdateCheckListTipo(CveCheckListTipo, TxtTipoCheckList.Text)) + { + Alert("Se actualizó el Tipo de CheckList correctamente"); + } + } + ObjAF.Dispose(); + CargaDatos(); + UpDatos.Update(); + RegistraScript(String.Format("$('#{0}').modal('hide');", "DivAgregarGrupoCheckListD")); + } +} \ No newline at end of file diff --git a/App_Code/ClsAF.vb b/App_Code/ClsAF.vb index 08b1f4e28..cfa56952f 100644 --- a/App_Code/ClsAF.vb +++ b/App_Code/ClsAF.vb @@ -3785,6 +3785,226 @@ Public Class ClsAF Return Retorno End Function + Public Function AddActividades(Nombre As String, CvePuesto As Integer, Cantidad As Decimal, CveUsuario As Integer, CveEmpresa As Integer) As Boolean + Dim Retorno As Boolean = False + + DataAdapter("PA_AF_ActividadesAdd") + + With SqlAdapter.SelectCommand.Parameters + .Add("@Nombre", SqlDbType.NVarChar).Value = Nombre + .Add("@CvePuesto", SqlDbType.Int).Value = CvePuesto + .Add("@Cantidad", SqlDbType.SmallMoney).Value = Cantidad + .Add("@CveUsuario", SqlDbType.Int).Value = CveUsuario + .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa + End With + + Try + SqlAdapter.Fill(Data) + Retorno = True + Catch ex As Exception + OnError("Ocurrió un error al agregar la actividad", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo) + End Try + + Return Retorno + End Function + + Public Function UpdateActividades(CveActividad As Integer, Nombre As String, CvePuesto As Integer, Cantidad As Decimal, CveUsuario As Integer, CveEmpresa As Integer) As Boolean + Dim Retorno As Boolean = False + + DataAdapter("PA_AF_ActividadesUpdate") + + With SqlAdapter.SelectCommand.Parameters + .Add("@CveActividad", SqlDbType.Int).Value = CveActividad + .Add("@Nombre", SqlDbType.NVarChar).Value = Nombre + .Add("@CvePuesto", SqlDbType.Int).Value = CvePuesto + .Add("@Cantidad", SqlDbType.SmallMoney).Value = Cantidad + .Add("@CveUsuario", SqlDbType.Int).Value = CveUsuario + .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa + End With + + Try + SqlAdapter.Fill(Data) + Retorno = True + Catch ex As Exception + OnError("Ocurrió un error al actualizar la actividad", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo) + End Try + + Return Retorno + End Function + + Public Function DeleteActividades(CveActividad As Integer) As Boolean + Dim Retorno As Boolean = False + + DataAdapter("PA_AF_ActividadesDelete") + + With SqlAdapter.SelectCommand.Parameters + .Add("@CveActividad", SqlDbType.Int).Value = CveActividad + End With + + Try + SqlAdapter.Fill(Data) + Retorno = True + Catch ex As Exception + OnError("Ocurrió un error al eliminar la actividad", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo) + End Try + + Return Retorno + End Function + + Public Function GetCheckListActividadGrupo(CveCheckListActividadGrupo As Integer) As Boolean + Dim Retorno As Boolean = False + + DataAdapter("PA_AF_CheckListGrupoGet") + + With SqlAdapter.SelectCommand.Parameters + .Add("@CveCheckListActividadGrupo", SqlDbType.Int).Value = CveCheckListActividadGrupo + End With + + Try + SqlAdapter.Fill(Data) + Retorno = True + Catch ex As Exception + OnError("Ocurrió un error al obtener el grupo de CheckList", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo) + End Try + + Return Retorno + End Function + + Public Function AddCheckListActividadGrupo(CheckListActividadGrupo As String) As Boolean + Dim Retorno As Boolean = False + + DataAdapter("PA_AF_CheckListGrupoAdd") + + With SqlAdapter.SelectCommand.Parameters + .Add("@CheckListActividadGrupo", SqlDbType.NVarChar).Value = CheckListActividadGrupo + End With + + Try + SqlAdapter.Fill(Data) + Retorno = True + Catch ex As Exception + OnError("Ocurrió un error al agregar el grupo de CheckList", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo) + End Try + + Return Retorno + End Function + + Public Function UpdateCheckListActividadGrupo(CveCheckListActividadGrupo As Integer, CheckListActividadGrupo As String) As Boolean + Dim Retorno As Boolean = False + + DataAdapter("PA_AF_CheckListGrupoUpdate") + + With SqlAdapter.SelectCommand.Parameters + .Add("@CveCheckListActividadGrupo", SqlDbType.Int).Value = CveCheckListActividadGrupo + .Add("@CheckListActividadGrupo", SqlDbType.NVarChar).Value = CheckListActividadGrupo + End With + + Try + SqlAdapter.Fill(Data) + Retorno = True + Catch ex As Exception + OnError("Ocurrió un error al actualizar el grupo de CheckList", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo) + End Try + + Return Retorno + End Function + + Public Function DeleteCheckListActividadGrupo(CveCheckListActividadGrupo As Integer) As Boolean + Dim Retorno As Boolean = False + + DataAdapter("PA_AF_CheckListGrupoDelete") + + With SqlAdapter.SelectCommand.Parameters + .Add("@CveCheckListActividadGrupo", SqlDbType.Int).Value = CveCheckListActividadGrupo + End With + + Try + SqlAdapter.Fill(Data) + Retorno = True + Catch ex As Exception + OnError("Ocurrió un error al eliminar el grupo de CheckList", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo) + End Try + + Return Retorno + End Function + + Public Function GetCheckListTipo(CveCheckListTipo As Integer) As Boolean + Dim Retorno As Boolean = False + + DataAdapter("PA_AF_CheckListTipoGet") + + With SqlAdapter.SelectCommand.Parameters + .Add("@CveCheckListTipo", SqlDbType.Int).Value = CveCheckListTipo + End With + + Try + SqlAdapter.Fill(Data) + Retorno = True + Catch ex As Exception + OnError("Ocurrió un error al obtener el tipo de CheckList", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo) + End Try + + Return Retorno + End Function + + Public Function AddCheckListTipo(CheckListTipo As String) As Boolean + Dim Retorno As Boolean = False + + DataAdapter("PA_AF_CheckListTipoAdd") + + With SqlAdapter.SelectCommand.Parameters + .Add("@CheckListTipo", SqlDbType.NVarChar).Value = CheckListTipo + End With + + Try + SqlAdapter.Fill(Data) + Retorno = True + Catch ex As Exception + OnError("Ocurrió un error al agregar el tipo de CheckList", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo) + End Try + + Return Retorno + End Function + + Public Function UpdateCheckListTipo(CveCheckListTipo As Integer, CheckListTipo As String) As Boolean + Dim Retorno As Boolean = False + + DataAdapter("PA_AF_CheckListTipoUpdate") + + With SqlAdapter.SelectCommand.Parameters + .Add("@CveCheckListTipo", SqlDbType.Int).Value = CveCheckListTipo + .Add("@CheckListTipo", SqlDbType.NVarChar).Value = CheckListTipo + End With + + Try + SqlAdapter.Fill(Data) + Retorno = True + Catch ex As Exception + OnError("Ocurrió un error al actualizar el tipo de CheckList", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo) + End Try + + Return Retorno + End Function + + Public Function DeleteCheckListTipo(CveCheckListTipo As Integer) As Boolean + Dim Retorno As Boolean = False + + DataAdapter("PA_AF_CheckListTipoDelete") + + With SqlAdapter.SelectCommand.Parameters + .Add("@CveCheckListTipo", SqlDbType.Int).Value = CveCheckListTipo + End With + + Try + SqlAdapter.Fill(Data) + Retorno = True + Catch ex As Exception + OnError("Ocurrió un error al eliminar el tipo de CheckList", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo) + End Try + + Return Retorno + End Function + #End Region diff --git a/App_Code/ClsPaginas.vb b/App_Code/ClsPaginas.vb index 70b5ff422..ddee3fb68 100644 --- a/App_Code/ClsPaginas.vb +++ b/App_Code/ClsPaginas.vb @@ -3955,6 +3955,9 @@ Public Class ClsPaginas PaginaDict.Add("/AF/CatTiposServicios.aspx".ToUpper(), 765) PaginaDict.Add("/AF/CatTiposServiciosActividades.aspx".ToUpper(), 766) PaginaDict.Add("/AF/CatTiposServiciosMateriales.aspx".ToUpper(), 767) + PaginaDict.Add("/AF/CatActividades.aspx".ToUpper(), 768) + PaginaDict.Add("/AF/CatCheckListActividadesGrupos.aspx".ToUpper(), 769) + PaginaDict.Add("/AF/CatCheckListTipo.aspx".ToUpper(), 770) PaginaDict.Add("/AF/TipoOrdenTrabajo.aspx".ToUpper(), -1) PaginaDict.Add("/AF/OrdenTrabajo.aspx".ToUpper(), -1) diff --git a/App_Code/DtDatos.xsd b/App_Code/DtDatos.xsd index 799552e6a..f4839bec3 100644 --- a/App_Code/DtDatos.xsd +++ b/App_Code/DtDatos.xsd @@ -235,6 +235,24 @@ + + + + + + + + + + + + + + + + + + @@ -271,22 +289,8 @@ - - - - - - - - - - - - - - - - + + diff --git a/App_Code/DtDatos.xss b/App_Code/DtDatos.xss index 6fa884b50..3d21fe6c6 100644 --- a/App_Code/DtDatos.xss +++ b/App_Code/DtDatos.xss @@ -4,7 +4,7 @@ Changes to this file may cause incorrect behavior and will be lost if the code is regenerated. --> - + @@ -16,9 +16,9 @@ - - - + + + \ No newline at end of file diff --git a/Ashx/GenerarPDFFactura.ashx b/Ashx/GenerarPDFFactura.ashx index e1b597879..d97b1c057 100644 --- a/Ashx/GenerarPDFFactura.ashx +++ b/Ashx/GenerarPDFFactura.ashx @@ -9,22 +9,26 @@ Imports Extensiones Imports System.IO Imports Microsoft.Reporting.WebForms +Imports ADSistemaLibrary.SatXml +Imports ADSistemaLibrary.SatXml.XmlSatCFDI + Public Class GenerarPDFFactura : Implements IHttpHandler - Public ReadOnly Property IsReusable() As Boolean Implements IHttpHandler.IsReusable - Get - Return False - End Get + Public ReadOnly Property IsReusable() As Boolean Implements IHttpHandler.IsReusable + Get + Return False + End Get End Property - Public ReadOnly Property EsProduccion As Boolean - Get - If IsNothing(System.Configuration.ConfigurationManager.AppSettings("EsProduccion")) Then - Return False - Else - Return (System.Configuration.ConfigurationManager.AppSettings("EsProduccion").ToString() = "1") - End If - End Get + Public ReadOnly Property EsProduccion As Boolean + Get + Return False + 'If IsNothing(System.Configuration.ConfigurationManager.AppSettings("EsProduccion")) Then + ' Return False + 'Else + ' Return (System.Configuration.ConfigurationManager.AppSettings("EsProduccion").ToString() = "1") + 'End If + End Get End Property Public Sub ProcessRequest(ByVal context As HttpContext) Implements IHttpHandler.ProcessRequest @@ -46,96 +50,211 @@ Public Class GenerarPDFFactura : Implements IHttpHandler Dim Formato As String = "" - If datos.API_SALI Then - Formato = ModExtensiones.DirectorioBaseEmpresas + "Empresas/Grales/ReporteAPISali.rdlc" - Else - Formato = ModExtensiones.DirectorioBaseEmpresas + "Empresas/Grales/ReporteAPI.rdlc" - End If + Dim Xml = New System.Xml.XmlDocument() + Xml.LoadXml(datos.XML) + Dim ArchivoXML = $"{context.Server.MapPath("/")}/Temp/{DateTime.UtcNow.Ticks}_{datos.Factura.Serie}-{datos.Factura.Folio}.xml" + Xml.Save(ArchivoXML) - Parametros.Add(New ReportParameter("Empresa", datos.Empresa.Empresa)) - Parametros.Add(New ReportParameter("RFC", datos.Empresa.RFC)) - Parametros.Add(New ReportParameter("DomicilioExpedicion", datos.Empresa.DomicilioFiscal)) - Parametros.Add(New ReportParameter("Serie", datos.Factura.Serie)) - Parametros.Add(New ReportParameter("Folio", datos.Factura.Folio)) - Parametros.Add(New ReportParameter("Fecha", datos.Factura.Fecha)) - Parametros.Add(New ReportParameter("ClienteNombre", datos.Cliente.NombreComercial)) - Parametros.Add(New ReportParameter("ClienteDireccion", datos.Cliente.Calle + " Colonia " + datos.Cliente.Colonia + " " + datos.Cliente.Ciudad + ", " + datos.Cliente.Estado)) - Parametros.Add(New ReportParameter("ClienteLugar", datos.Cliente.Ciudad)) - Parametros.Add(New ReportParameter("ClienteRFC", datos.Cliente.RFC)) - Parametros.Add(New ReportParameter("ImporteLetra", datos.Factura.Total.Texto2Letras())) - Parametros.Add(New ReportParameter("FormaPago", datos.Factura.FormaPago)) - Parametros.Add(New ReportParameter("MetodoPago", datos.Factura.MetodoPago)) - Parametros.Add(New ReportParameter("SelloCFDI", datos.Timbrado.SelloCFDI)) - Parametros.Add(New ReportParameter("SelloSAT", datos.Timbrado.SelloSAT)) - Parametros.Add(New ReportParameter("CadenaOriginal", datos.Timbrado.CadenaOriginal)) - Parametros.Add(New ReportParameter("FolioFiscal", datos.Factura.UUID)) - Parametros.Add(New ReportParameter("SerieCertificadoSAT", datos.Timbrado.SerieCertificadoSAT)) - Parametros.Add(New ReportParameter("FechaCertificado", datos.Timbrado.FechaCertificado)) - Parametros.Add(New ReportParameter("CertificadoContribuyente", datos.Timbrado.CertificadoContribuyente)) - Parametros.Add(New ReportParameter("UsoCFDI", datos.Factura.UsoCFDI)) - Parametros.Add(New ReportParameter("Vencimiento", datos.Factura.FechaVencimiento)) - Parametros.Add(New ReportParameter("SubTotal", datos.Factura.SubTotal)) - Parametros.Add(New ReportParameter("Descuentos", datos.Factura.Descuentos)) - Parametros.Add(New ReportParameter("IVA", datos.Factura.IVA)) - Parametros.Add(New ReportParameter("IEPS", datos.Factura.IEPS)) - Parametros.Add(New ReportParameter("Total", datos.Factura.Total)) - Parametros.Add(New ReportParameter("QR", datos.Timbrado.QR)) + ImprimirbytesPDF(context, GenerarCFDi(context, ArchivoXML, datos), "Factura") - Dim DtDatos As New DataTable - DtDatos.Columns.Add(New DataColumn("Cantidad", GetType(Decimal))) - DtDatos.Columns.Add(New DataColumn("UnidadMedida", GetType(String))) - DtDatos.Columns.Add(New DataColumn("PS", GetType(String))) - DtDatos.Columns.Add(New DataColumn("PU", GetType(Decimal))) - DtDatos.Columns.Add(New DataColumn("IVA", GetType(Decimal))) - DtDatos.Columns.Add(New DataColumn("IEPS", GetType(Decimal))) - DtDatos.Columns.Add(New DataColumn("Descuento", GetType(Decimal))) - DtDatos.Columns.Add(New DataColumn("Total", GetType(Decimal))) + 'If datos.API_SALI Then + ' Dim Xml = New System.Xml.XmlDocument() + ' Xml.LoadXml(datos.XML) + ' Dim ArchivoXML = $"{context.Server.MapPath("/")}/Temp/{DateTime.UtcNow.Ticks}_{datos.Factura.Serie}-{datos.Factura.Folio}.xml" + ' Xml.Save(ArchivoXML) - Dim DtImpuestos As New DataTable - DtImpuestos.Columns.Add(New DataColumn("Impuesto", GetType(String))) - DtImpuestos.Columns.Add(New DataColumn("Tipo", GetType(String))) - DtImpuestos.Columns.Add(New DataColumn("Base", GetType(Decimal))) - DtImpuestos.Columns.Add(New DataColumn("TipoFactor", GetType(String))) - DtImpuestos.Columns.Add(New DataColumn("TasaOCuota", GetType(String))) - DtImpuestos.Columns.Add(New DataColumn("Importe", GetType(Decimal))) + ' ImprimirbytesPDF(context, GenerarCFDi(context, ArchivoXML, datos), "Factura") + 'Else + ' Formato = ModExtensiones.DirectorioBaseEmpresas + "Empresas/Grales/ReporteAPI.rdlc" - For Each PS In datos.Factura.ListaProductos - Dim Row = DtDatos.NewRow() - Row("Cantidad") = PS.Cantidad - Row("UnidadMedida") = PS.UnidadMedida - Row("PS") = PS.CodigoPS - Row("PU") = PS.PU - Row("IVA") = PS.IVA - Row("IEPS") = PS.IEPS - Row("Descuento") = PS.Descuento - Row("Total") = (PS.Cantidad * PS.PU) + PS.IVA + PS.IEPS + ' Parametros.Add(New ReportParameter("Empresa", datos.Empresa.Empresa)) + ' Parametros.Add(New ReportParameter("RFC", datos.Empresa.RFC)) + ' Parametros.Add(New ReportParameter("DomicilioExpedicion", datos.Empresa.DomicilioFiscal)) + ' Parametros.Add(New ReportParameter("Serie", datos.Factura.Serie)) + ' Parametros.Add(New ReportParameter("Folio", datos.Factura.Folio)) + ' Parametros.Add(New ReportParameter("Fecha", datos.Factura.Fecha)) + ' Parametros.Add(New ReportParameter("ClienteNombre", datos.Cliente.NombreComercial)) + ' Parametros.Add(New ReportParameter("ClienteDireccion", datos.Cliente.Calle + " Colonia " + datos.Cliente.Colonia + " " + datos.Cliente.Ciudad + ", " + datos.Cliente.Estado)) + ' Parametros.Add(New ReportParameter("ClienteLugar", datos.Cliente.Ciudad)) + ' Parametros.Add(New ReportParameter("ClienteRFC", datos.Cliente.RFC)) + ' Parametros.Add(New ReportParameter("ImporteLetra", datos.Factura.Total.Texto2Letras())) + ' Parametros.Add(New ReportParameter("FormaPago", datos.Factura.FormaPago)) + ' Parametros.Add(New ReportParameter("MetodoPago", datos.Factura.MetodoPago)) + ' Parametros.Add(New ReportParameter("SelloCFDI", datos.Timbrado.SelloCFDI)) + ' Parametros.Add(New ReportParameter("SelloSAT", datos.Timbrado.SelloSAT)) + ' Parametros.Add(New ReportParameter("CadenaOriginal", datos.Timbrado.CadenaOriginal)) + ' Parametros.Add(New ReportParameter("FolioFiscal", datos.Factura.UUID)) + ' Parametros.Add(New ReportParameter("SerieCertificadoSAT", datos.Timbrado.SerieCertificadoSAT)) + ' Parametros.Add(New ReportParameter("FechaCertificado", datos.Timbrado.FechaCertificado)) + ' Parametros.Add(New ReportParameter("CertificadoContribuyente", datos.Timbrado.CertificadoContribuyente)) + ' Parametros.Add(New ReportParameter("UsoCFDI", datos.Factura.UsoCFDI)) + ' Parametros.Add(New ReportParameter("Vencimiento", datos.Factura.FechaVencimiento)) + ' Parametros.Add(New ReportParameter("SubTotal", datos.Factura.SubTotal)) + ' Parametros.Add(New ReportParameter("Descuentos", datos.Factura.Descuentos)) + ' Parametros.Add(New ReportParameter("IVA", datos.Factura.IVA)) + ' Parametros.Add(New ReportParameter("IEPS", datos.Factura.IEPS)) + ' Parametros.Add(New ReportParameter("Total", datos.Factura.Total)) + ' Parametros.Add(New ReportParameter("QR", datos.Timbrado.QR)) - DtDatos.Rows.Add(Row) - Next + ' Dim DtDatos As New DataTable + ' DtDatos.Columns.Add(New DataColumn("Cantidad", GetType(Decimal))) + ' DtDatos.Columns.Add(New DataColumn("UnidadMedida", GetType(String))) + ' DtDatos.Columns.Add(New DataColumn("PS", GetType(String))) + ' DtDatos.Columns.Add(New DataColumn("PU", GetType(Decimal))) + ' DtDatos.Columns.Add(New DataColumn("IVA", GetType(Decimal))) + ' DtDatos.Columns.Add(New DataColumn("IEPS", GetType(Decimal))) + ' DtDatos.Columns.Add(New DataColumn("Descuento", GetType(Decimal))) + ' DtDatos.Columns.Add(New DataColumn("Total", GetType(Decimal))) - Dim RowImpuesto = DtImpuestos.NewRow() - RowImpuesto("Impuesto") = "IVA" - RowImpuesto("Tipo") = "Traslado" - RowImpuesto("Base") = datos.Factura.SubTotal - RowImpuesto("TipoFactor") = "Tasa" - RowImpuesto("TasaOCuota") = "16%" - RowImpuesto("Importe") = datos.Factura.IVA + ' Dim DtImpuestos As New DataTable + ' DtImpuestos.Columns.Add(New DataColumn("Impuesto", GetType(String))) + ' DtImpuestos.Columns.Add(New DataColumn("Tipo", GetType(String))) + ' DtImpuestos.Columns.Add(New DataColumn("Base", GetType(Decimal))) + ' DtImpuestos.Columns.Add(New DataColumn("TipoFactor", GetType(String))) + ' DtImpuestos.Columns.Add(New DataColumn("TasaOCuota", GetType(String))) + ' DtImpuestos.Columns.Add(New DataColumn("Importe", GetType(Decimal))) - DtImpuestos.Rows.Add(RowImpuesto) + ' For Each PS In datos.Factura.ListaProductos + ' Dim Row = DtDatos.NewRow() + ' Row("Cantidad") = PS.Cantidad + ' Row("UnidadMedida") = PS.UnidadMedida + ' Row("PS") = PS.CodigoPS + ' Row("PU") = PS.PU + ' Row("IVA") = PS.IVA + ' Row("IEPS") = PS.IEPS + ' Row("Descuento") = PS.Descuento + ' Row("Total") = (PS.Cantidad * PS.PU) + PS.IVA + PS.IEPS - ListaDS.Add(New ReportDataSource("DsProductos", DtDatos)) - ListaDS.Add(New ReportDataSource("DsImpuestos", DtImpuestos)) + ' DtDatos.Rows.Add(Row) + ' Next - ImprimirbytesPDF(context, StreamPDF(context, Formato, ListaDS, Parametros), "Factura") + ' Dim RowImpuesto = DtImpuestos.NewRow() + ' RowImpuesto("Impuesto") = "IVA" + ' RowImpuesto("Tipo") = "Traslado" + ' RowImpuesto("Base") = datos.Factura.SubTotal + ' RowImpuesto("TipoFactor") = "Tasa" + ' RowImpuesto("TasaOCuota") = "16%" + ' RowImpuesto("Importe") = datos.Factura.IVA + + ' DtImpuestos.Rows.Add(RowImpuesto) + + ' ListaDS.Add(New ReportDataSource("DsProductos", DtDatos)) + ' ListaDS.Add(New ReportDataSource("DsImpuestos", DtImpuestos)) + + ' ImprimirbytesPDF(context, StreamPDF(context, Formato, ListaDS, Parametros), "Factura") + 'End If + Else + retorno = "no hay datossss" End If Catch ex As Exception + retorno = ex.ToString() ex.GuardaLog(ex.ToString()) context.Response.Write(retorno) End Try End Sub + Private Function GenerarCFDi(ByVal context As HttpContext, RutaXml As String, datos As ParametroWS) As Byte() + Dim bytes As Byte() = Nothing + + Dim objxml As XmlSatCFDI = XmlSatCFDI.readXML(RutaXml) + + Dim rutaReporte As String = "\Empresas\Grales\Formatos\FacturaSALI.rdlc" + + Dim QR As ClbNegBICFDv3_2.ClsNegCBBGenerar = New ClbNegBICFDv3_2.ClsNegCBBGenerar() + Dim cQr As Byte() = QR.GenerarCBBBytes(objxml.emisor.Rfc, objxml.receptor.Rfc, objxml.comprobante.Total, objxml.complemento.UUID) + Dim parametros As List(Of ReportParameter) = New List(Of ReportParameter)() + parametros.Add(New ReportParameter("comprobante_Certificado", objxml.comprobante.Certificado)) + parametros.Add(New ReportParameter("comprobante_CondicionesDePago", objxml.comprobante.CondicionesDePago)) + parametros.Add(New ReportParameter("comprobante_Confirmacion", objxml.comprobante.Confirmacion)) + parametros.Add(New ReportParameter("comprobante_Fecha", objxml.comprobante.Fecha)) + parametros.Add(New ReportParameter("comprobante_Serie", objxml.comprobante.Serie)) + parametros.Add(New ReportParameter("comprobante_Folio", objxml.comprobante.Folio)) + parametros.Add(New ReportParameter("comprobante_Descuento", objxml.comprobante.Descuento.ToString("N2"))) + parametros.Add(New ReportParameter("comprobante_SubTotal", objxml.comprobante.SubTotal.ToString("N2"))) + parametros.Add(New ReportParameter("comprobante_Total", objxml.comprobante.Total.ToString("N2"))) + parametros.Add(New ReportParameter("comprobante_Version", objxml.comprobante.Version)) + parametros.Add(New ReportParameter("comprobante_TipoDeComprobante", objxml.comprobante.TipoDeComprobanteTexto)) + parametros.Add(New ReportParameter("comprobante_FormaPago", objxml.comprobante.FormaPagoTexto)) + parametros.Add(New ReportParameter("comprobante_LugarExpedicion", objxml.comprobante.LugarExpedicion)) + parametros.Add(New ReportParameter("comprobante_NoCertificado", objxml.comprobante.NoCertificado)) + parametros.Add(New ReportParameter("comprobante_Sello", objxml.comprobante.Sello)) + parametros.Add(New ReportParameter("comprobante_Moneda", objxml.comprobante.Moneda)) + parametros.Add(New ReportParameter("comprobante_TipoCambio", objxml.comprobante.TipoCambio.ToString("N2"))) + parametros.Add(New ReportParameter("comprobante_MetodoPago", objxml.comprobante.MetodoPagoTexto)) + parametros.Add(New ReportParameter("emisor_Rfc", objxml.emisor.Rfc)) + parametros.Add(New ReportParameter("emisor_Nombre", objxml.emisor.Nombre)) + parametros.Add(New ReportParameter("emisor_RegimenFiscal", objxml.emisor.RegimenFiscalTexto)) + parametros.Add(New ReportParameter("emisor_Direccion", datos.Empresa.DomicilioFiscal)) + parametros.Add(New ReportParameter("receptor_Rfc", objxml.receptor.Rfc)) + parametros.Add(New ReportParameter("receptor_Nombre", objxml.receptor.Nombre)) + parametros.Add(New ReportParameter("receptor_NumRegIdTrib", objxml.receptor.NumRegIdTrib)) + parametros.Add(New ReportParameter("receptor_ResidenciaFiscal", objxml.receptor.ResidenciaFiscal)) + parametros.Add(New ReportParameter("receptor_UsoCFDI", objxml.receptor.UsoCFDITexto)) + parametros.Add(New ReportParameter("complemento_FechaTimbrado", objxml.complemento.FechaTimbrado)) + parametros.Add(New ReportParameter("complemento_NoCertificadoSAT", objxml.complemento.NoCertificadoSAT)) + parametros.Add(New ReportParameter("complemento_RfcProvCertif", objxml.complemento.RfcProvCertif)) + parametros.Add(New ReportParameter("complemento_SelloCFD", objxml.complemento.SelloCFD)) + parametros.Add(New ReportParameter("complemento_SelloSAT", objxml.complemento.SelloSAT)) + parametros.Add(New ReportParameter("complemento_UUID", objxml.complemento.UUID)) + parametros.Add(New ReportParameter("complemento_CadenaOriginal", objxml.complemento.CadenaOriginal)) + + + Dim ds As New List(Of ReportDataSource) + + Dim rdsTotales As ReportDataSource = New ReportDataSource() + Dim ltotales As List(Of utilValores) = New List(Of utilValores)() + ltotales.Add(New utilValores("Subtotal", objxml.comprobante.SubTotal.ToString("N2"))) + + If objxml.comprobante.Descuento > 0 Then + ltotales.Add(New utilValores("Descuento", objxml.comprobante.Descuento.ToString("N2"))) + End If + + For Each item As CFDIImpuesto In objxml.Impuestos + + If item.Importe > 0 Then + Dim TasaOCuota As Decimal = 0 + Decimal.TryParse(item.TasaOCuota, TasaOCuota) + ltotales.Add(New utilValores($"Impuestos {item.Tipo} {item.ImpuestoTexto} {(If(item.TipoFactor = "Tasa", (TasaOCuota * 100).ToString("N4"), item.TasaOCuota))} {(If(item.TipoFactor = "Tasa", "%", ""))}", item.Importe.ToString("N2"))) + End If + Next + + ltotales.Add(New utilValores("Total", objxml.comprobante.Total.ToString("N2"))) + rdsTotales.Name = "dsTotales" + rdsTotales.Value = ltotales + ds.Add(rdsTotales) + + Dim rds2 As ReportDataSource = New ReportDataSource() + Dim limagenes As List(Of utilImage) = New List(Of utilImage)() + limagenes.Add(New utilImage(cQr)) + rds2.Name = "dsImagenes" + rds2.Value = limagenes + ds.Add(rds2) + + Dim rdsrelacionados As ReportDataSource = New ReportDataSource() + rdsrelacionados.Name = "dsRelacionados" + rdsrelacionados.Value = objxml.cFDIRelacionados + ds.Add(rdsrelacionados) + + Dim rds1 As ReportDataSource = New ReportDataSource() + rds1.Name = "dsConceptos" + rds1.Value = objxml.GetConceptosforpdf() + + ds.Add(rds1) + + Try + bytes = StreamPDF(context, rutaReporte, ds, parametros) + + System.IO.File.Delete(RutaXml) + Catch ex As Exception + + End Try + + Return bytes + + End Function + Public Function StreamPDF(ByVal context As HttpContext, RutaReporte As String, DataSource As List(Of ReportDataSource), Parametros As List(Of ReportParameter), Optional NombreArchivo As String = "Reporte", Optional Formato As String = "PDF", Optional MR As ReportViewer = Nothing) As Byte() 'limpio ReportViwer Dim sw As New System.Diagnostics.Stopwatch() @@ -150,8 +269,8 @@ Public Class GenerarPDFFactura : Implements IHttpHandler If EsProduccion Then - Dim CveUsuario As Integer = 0 - Dim CveEmpresa As Integer = 0 + Dim CveUsuario As Integer = -1 + Dim CveEmpresa As Integer = -1 Dim wsreport As New WSRDLC.WebServiceSoapClient Dim params As New List(Of WSRDLC.ReportParameter) @@ -175,6 +294,7 @@ Public Class GenerarPDFFactura : Implements IHttpHandler Bytes = wsreport.StreamPDFBytes(RutaReporte, ds, params.ToArray(), NombreArchivo, Formato, CveEmpresa, CveUsuario) wsreport = Nothing params = Nothing + Else If IsNothing(MR) Then MR = New ReportViewer Try @@ -364,8 +484,10 @@ Public Class GenerarPDFFactura : Implements IHttpHandler Public Property Factura As FacturaWS Public Property Cliente As ClienteWS Public Property Empresa As EmpresaWS - Public Property Timbrado As DatosSATWS Public Property API_SALI As Boolean + Public Property Timbrado As DatosSATWS + + Public Property XML As String End Class diff --git a/Compras/Compras.aspx b/Compras/Compras.aspx index 7537d835a..a58e8d78b 100644 --- a/Compras/Compras.aspx +++ b/Compras/Compras.aspx @@ -471,7 +471,7 @@ - + @@ -650,7 +650,7 @@
    -
    +
    @@ -658,7 +658,7 @@ <%----%>
    -
    +
    @@ -1232,7 +1232,7 @@ - + @@ -2559,11 +2559,11 @@ - +

    - +

    @@ -3303,7 +3303,7 @@