From b90736dec7e6ee079fedd51e49a5f86df11ee203 Mon Sep 17 00:00:00 2001 From: rrene Date: Mon, 13 Sep 2021 21:16:31 -0700 Subject: [PATCH] -- modificaciones de carta porte --- App_Code/ClsGenerales.vb | 35 ++++ App_Code/ClsPaginas.vb | 59 ++++++- App_Code/ClsProductosServicios.vb | 21 ++- App_Code/ClsSAT.vb | 97 +++++++++++ App_Code/Timbrado.vb | 4 +- Ashx/SIGWeb.ashx | 82 +++++++++ Inventarios/TraspasoAlmacen.aspx.vb | 261 ++++++++++++++++++++-------- Ventas/ProductosServicios.aspx | 33 ++++ Ventas/ProductosServicios.aspx.vb | 36 +++- 9 files changed, 552 insertions(+), 76 deletions(-) diff --git a/App_Code/ClsGenerales.vb b/App_Code/ClsGenerales.vb index 56b39138a..a0887a7aa 100644 --- a/App_Code/ClsGenerales.vb +++ b/App_Code/ClsGenerales.vb @@ -3268,6 +3268,41 @@ Public Class ClsGenerales #End Region +#Region "C A R T A P O R T E" + + Public Function GetMaterialPeligroso() As Boolean + Dim Retorno As Boolean = False + DataAdapter("PA_Gral_CP_MaterialPeligrosoGet") + 'With SqlAdapter.SelectCommand.Parameters + ' .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa + ' .Add("@CveClasificacionPorcentaje", SqlDbType.Int).Value = CveClasificacionPorcentaje + ' .Add("@CveClasificacion", SqlDbType.Int).Value = CveClasificacion + ' .Add("@PorcentajeIVA", SqlDbType.Float).Value = PorcentajeIVA + ' .Add("@Opcion", SqlDbType.Int).Value = Opcion + 'End With + Try + SqlAdapter.Fill(Data) + Retorno = True + Catch ex As Exception + OnError("Ocurrió un error al obtener materiales peligrosos.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) + End Try + Return Retorno + End Function + Public Function GetEmbalajes() As Boolean + Dim Retorno As Boolean = False + DataAdapter("PA_Gral_CP_EmbalajesGet") + + Try + SqlAdapter.Fill(Data) + Retorno = True + Catch ex As Exception + OnError("Ocurrió un error al obtener embalajes.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) + End Try + Return Retorno + End Function + +#End Region + Protected Overridable Sub Dispose(ByVal disposing As Boolean) If Not disposedValue Then If disposing Then diff --git a/App_Code/ClsPaginas.vb b/App_Code/ClsPaginas.vb index ca3dfd4b8..d41362f31 100644 --- a/App_Code/ClsPaginas.vb +++ b/App_Code/ClsPaginas.vb @@ -645,6 +645,63 @@ Public Class ClsPaginas End Set End Property +#Region "C A R T A P O R T E " + Property GlobalDTMaterialPeligroso(Optional CveMaterialPeligroso As Integer = -1) As DataTable + Get + + Dim AppNombre As String = "GlobalDTMaterialPeligroso" + 'sino existe, recarga los datos + If Application(AppNombre) Is Nothing Then + Dim Obj As New ClsGenerales + If Obj.GetMaterialPeligroso() Then Application(AppNombre) = Obj.DtResultados + Obj.Dispose() + End If + If CveMaterialPeligroso > 0 Then + Dim Str As New StringBuilder + Str.AppendFormat("CveMaterialPeligroso = {0}", CveMaterialPeligroso) + Dim Dv As New DataView(DirectCast(Application(AppNombre), DataTable), Str.ToString(), "", DataViewRowState.CurrentRows) + GlobalDTMaterialPeligroso = Dv.ToTable + Dv.Dispose() + Else + GlobalDTMaterialPeligroso = DirectCast(Application(AppNombre), DataTable) + End If + + End Get + Set(value As DataTable) + Dim AppNombre As String = "GlobalDTMaterialPeligroso" + Application(AppNombre) = value + End Set + End Property + + Property GlobalDTEmbalajes(Optional CveEmbalaje As Integer = -1) As DataTable + Get + + Dim AppNombre As String = "GlobalDTEmbalajes" + 'sino existe, recarga los datos + If Application(AppNombre) Is Nothing Then + Dim Obj As New ClsGenerales + If Obj.GetEmbalajes() Then Application(AppNombre) = Obj.DtResultados + Obj.Dispose() + End If + If CveEmbalaje > 0 Then + Dim Str As New StringBuilder + Str.AppendFormat("CveEmbalaje = {0}", CveEmbalaje) + Dim Dv As New DataView(DirectCast(Application(AppNombre), DataTable), Str.ToString(), "", DataViewRowState.CurrentRows) + GlobalDTEmbalajes = Dv.ToTable + Dv.Dispose() + Else + GlobalDTEmbalajes = DirectCast(Application(AppNombre), DataTable) + End If + + End Get + Set(value As DataTable) + Dim AppNombre As String = "GlobalDTEmbalajes" + Application(AppNombre) = value + End Set + End Property +#End Region + + Property GlobalDTClasificaciones(Optional CveEmpresa As Integer = -1, Optional CveCategoria As Integer = -1, Optional UsoClasificacion As Integer = -1, Optional CveClasificacion As Integer = -1) As DataTable Get @@ -3896,7 +3953,7 @@ Public Class ClsPaginas If Application("GlobalSIGAppPaginas") Is Nothing Then PaginaDict = New System.Collections.Hashtable - PaginaDict.Add("/Nomina/ChecadorAsistencia.aspx".ToUpper(), -1) + PaginaDict.Add("/Nomina/ChecadorAsistencia.aspx".ToUpper(), 921) PaginaDict.Add("/Nomina/ISRCalculoAnual.aspx".ToUpper(), 918) PaginaDict.Add("/Nomina/MovimientosSUA.aspx".ToUpper(), 919) 'PaginaDict.Add("/Nomina/Acumulados.aspx".ToUpper(), 916) diff --git a/App_Code/ClsProductosServicios.vb b/App_Code/ClsProductosServicios.vb index 4af16b530..113c97ce0 100644 --- a/App_Code/ClsProductosServicios.vb +++ b/App_Code/ClsProductosServicios.vb @@ -89,6 +89,9 @@ Public Class ClsProductosServicios Public Property ClaveSATUnidadAduanaDescripcion As String Public Property ClaveSATFraccionArancelaria As String Public Property ClaveSATUnidadAduana As String + Public Property CveMaterialPeligroso As Integer + Public Property CveEmbalaje As Integer + Public Property PesoKg As Decimal 'Nuevo Raul: 10/08/2018 Public Property CveUsuarioModifico As Integer @@ -295,6 +298,10 @@ Public Class ClsProductosServicios ClaveSATFraccionArancelariaDescripcion = Data.Rows(0)("ClaveSATFraccionArancelariaDescripcion").ToString ClaveSATUnidadAduanaDescripcion = Data.Rows(0)("ClaveSATUnidadAduanaDescripcion").ToString + CveMaterialPeligroso = Data.Rows(0)("CveMaterialPeligroso").ToString.ToEntero + CveEmbalaje = Data.Rows(0)("CveEmbalaje").ToString.ToEntero + PesoKg = Data.Rows(0)("PesoKg").ToString.ToDecimal + 'Nuevo Raul: 10/08/2018 CveUsuarioModifico = Data.Rows(0)("CveUsuarioModifico").ToString.ToEntero UsuarioModifico = Data.Rows(0)("UsuarioModifico").ToString @@ -408,7 +415,8 @@ Public Class ClsProductosServicios Optional CveFraccionArancelaria As Integer = -1, Optional CveClasificacionDetalle As Integer = -1, Optional CveTamaño As Integer = -1, Optional CveModelo As Integer = -1, Optional CveMedida As Integer = -1, Optional CveRinTamaño As Integer = -1, Optional ClaveImpuestoEmpaque As String = "", Optional ClaveImpuestoUM As String = "", Optional ClaveCategoriaToxicidad As String = "", Optional ClaveImpuestoTipoProducto As String = "", Optional Litraje As Double = -1, Optional EsOutSourcing As Boolean = False, Optional AplicaSerie As Boolean = False, Optional AplicaLote As Boolean = False, - Optional AplicaCaducidad As Boolean = False, Optional AplicaSeccion As Boolean = False, Optional TiempoCaducidad As Integer = -1, Optional CvePSAdicionalVigencia As Integer = -1, Optional PrecioLibre As Boolean = False) As Integer + Optional AplicaCaducidad As Boolean = False, Optional AplicaSeccion As Boolean = False, Optional TiempoCaducidad As Integer = -1, Optional CvePSAdicionalVigencia As Integer = -1, Optional PrecioLibre As Boolean = False, + Optional CveMaterialPeligroso As Integer = -1, Optional CveEmbalaje As Integer = -1, Optional PesoKg As Decimal = -1) As Integer Dim Retorno As Integer = -1 DataAdapter("PA_ProductosServiciosAdd") @@ -492,6 +500,10 @@ Public Class ClsProductosServicios .Add("@CvePSAdicionalVigencia", SqlDbType.Int).Value = CvePSAdicionalVigencia .Add("@PrecioLibre", SqlDbType.Bit).Value = PrecioLibre + .Add("@CveMaterialPeligroso", SqlDbType.Int).Value = CveMaterialPeligroso + .Add("@CveEmbalaje", SqlDbType.Int).Value = CveEmbalaje + .Add("@PesoKg", SqlDbType.SmallMoney).Value = PesoKg + End With Try @@ -638,7 +650,8 @@ Public Class ClsProductosServicios Optional CveFraccionArancelaria As Integer = -1, Optional CveUsuarioModifico As Integer = -1, Optional CveClasificacionDetalle As Integer = -1, Optional CveTamaño As Integer = -1, Optional CveModelo As Integer = -1, Optional CveMedida As Integer = -1, Optional CveRinTamaño As Integer = -1, Optional ClaveImpuestoEmpaque As String = "", Optional ClaveImpuestoUM As String = "", Optional ClaveCategoriaToxicidad As String = "", Optional ClaveImpuestoTipoProducto As String = "", Optional Litraje As Double = -1, Optional EsOutSourcing As Boolean = False, - Optional AplicaSerie As Boolean = False, Optional AplicaLote As Boolean = False, Optional AplicaCaducidad As Boolean = False, Optional AplicaSeccion As Boolean = False, Optional TiempoCaducidad As Integer = -1, Optional CvePSAdicionalVigencia As Integer = -1, Optional PrecioLibre As Boolean = False) As Boolean + Optional AplicaSerie As Boolean = False, Optional AplicaLote As Boolean = False, Optional AplicaCaducidad As Boolean = False, Optional AplicaSeccion As Boolean = False, Optional TiempoCaducidad As Integer = -1, Optional CvePSAdicionalVigencia As Integer = -1, Optional PrecioLibre As Boolean = False, + Optional CveMaterialPeligroso As Integer = -1, Optional CveEmbalaje As Integer = -1, Optional PesoKg As Decimal = -1) As Boolean Dim Retorno As Boolean = False @@ -724,6 +737,10 @@ Public Class ClsProductosServicios .Add("@CvePSAdicionalVigencia", SqlDbType.Int).Value = CvePSAdicionalVigencia .Add("@PrecioLibre", SqlDbType.Bit).Value = PrecioLibre + .Add("@CveMaterialPeligroso", SqlDbType.Int).Value = CveMaterialPeligroso + .Add("@CveEmbalaje", SqlDbType.Int).Value = CveEmbalaje + .Add("@PesoKg", SqlDbType.SmallMoney).Value = PesoKg + End With Try diff --git a/App_Code/ClsSAT.vb b/App_Code/ClsSAT.vb index b5592d9d8..ec5a7b30e 100644 --- a/App_Code/ClsSAT.vb +++ b/App_Code/ClsSAT.vb @@ -345,6 +345,103 @@ Public Class ClsSAT #End Region +#Region " C A R T A P O R T E" + + + + Public Function GetCartaPorteMaterialPeligroso() As Boolean + Dim Retorno As Boolean = False + + DataAdapter("PA_Gral_SAT_CP_MaterialPeligroso") + + 'With SqlAdapter.SelectCommand.Parameters + ' .Add("@Tipo", SqlDbType.Int).Value = Tipo + ' .Add("@RFC", SqlDbType.VarChar).Value = RFC + ' .Add("@CveProveedor", SqlDbType.Int).Value = CveProveedor + ' .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa + 'End With + + Try + SqlAdapter.Fill(Data) + Retorno = True + Catch ex As Exception + OnError("Ocurrió un error al obtener los registros de material peligroso", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) + End Try + + Return Retorno + + End Function + + Public Function GetCartaPorteTipoPermiso() As Boolean + Dim Retorno As Boolean = False + + DataAdapter("PA_Gral_SAT_CP_TipoPermiso") + + 'With SqlAdapter.SelectCommand.Parameters + ' .Add("@Tipo", SqlDbType.Int).Value = Tipo + ' .Add("@RFC", SqlDbType.VarChar).Value = RFC + ' .Add("@CveProveedor", SqlDbType.Int).Value = CveProveedor + ' .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa + 'End With + + Try + SqlAdapter.Fill(Data) + Retorno = True + Catch ex As Exception + OnError("Ocurrió un error al obtener los registros de material peligroso", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) + End Try + + Return Retorno + + End Function + + Public Function GetCartaPorteConfigAutoTransporte() As Boolean + Dim Retorno As Boolean = False + + DataAdapter("PA_Gral_SAT_CP_ConfiAutoTransporte") + + 'With SqlAdapter.SelectCommand.Parameters + ' .Add("@Tipo", SqlDbType.Int).Value = Tipo + ' .Add("@RFC", SqlDbType.VarChar).Value = RFC + ' .Add("@CveProveedor", SqlDbType.Int).Value = CveProveedor + ' .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa + 'End With + + Try + SqlAdapter.Fill(Data) + Retorno = True + Catch ex As Exception + OnError("Ocurrió un error al obtener los registros de material peligroso", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) + End Try + + Return Retorno + + End Function + + Public Function GetCartaPorteSubTipoRemolque() As Boolean + Dim Retorno As Boolean = False + + DataAdapter("PA_Gral_SAT_CP_SubTipoRemolque") + + 'With SqlAdapter.SelectCommand.Parameters + ' .Add("@Tipo", SqlDbType.Int).Value = Tipo + ' .Add("@RFC", SqlDbType.VarChar).Value = RFC + ' .Add("@CveProveedor", SqlDbType.Int).Value = CveProveedor + ' .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa + 'End With + + Try + SqlAdapter.Fill(Data) + Retorno = True + Catch ex As Exception + OnError("Ocurrió un error al obtener los registros de material peligroso", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) + End Try + + Return Retorno + + End Function + +#End Region #Region "IDisposable Support" ' IDisposable diff --git a/App_Code/Timbrado.vb b/App_Code/Timbrado.vb index aa405c7f4..9031350b1 100644 --- a/App_Code/Timbrado.vb +++ b/App_Code/Timbrado.vb @@ -1320,7 +1320,7 @@ Public Class Timbrado sw.Start() ' cfdi.saltarValidacion("bNtMuvZockPVhEjaPj0E") - ' cfdi.Decimales = 4 + cfdi.Decimales = 4 #Region "Certificado" cfdi.agregarCertificado(ArchivoCertificado) #End Region @@ -1906,7 +1906,7 @@ Public Class Timbrado sw.Start() ' cfdi.saltarValidacion("bNtMuvZockPVhEjaPj0E") - ' cfdi.Decimales = 4 + cfdi.Decimales = 5 #Region "Certificado" cfdi.CertificadoArchivo(ArchivoCertificado) #End Region diff --git a/Ashx/SIGWeb.ashx b/Ashx/SIGWeb.ashx index 8875454bd..57248f917 100644 --- a/Ashx/SIGWeb.ashx +++ b/Ashx/SIGWeb.ashx @@ -87,6 +87,10 @@ Public Class SIGWeb : Implements IHttpHandler, IRequiresSessionState GETPSUSADOS(context) Case "getumsat" GETUMSAT(context) + Case "getsatmatpeligroso" + GETSATMaterialPeligroso(context) + Case "getsatembalajes" + GETSATEmbalajes(context) Case "getcliente" GetClientes(context) Case "getproveedores" @@ -1054,6 +1058,84 @@ Public Class SIGWeb : Implements IHttpHandler, IRequiresSessionState End Function #End Region +#Region " GET SAT CARTA PORTE " + Private Function GETSATMaterialPeligroso(ByVal context As HttpContext) As String + Dim retorno As String = "" + + + If context.Application("GlobalDTMaterialPeligroso") Is Nothing Then + Dim ObjGrales As New ClsGenerales + If ObjGrales.GetMaterialPeligroso Then context.Application("GlobalDTMaterialPeligroso") = ObjGrales.DtResultados Else context.Application("GlobalDTMaterialPeligroso") = Nothing + ObjGrales.Dispose() + End If + + Dim DTUM = DirectCast(context.Application("GlobalDTMaterialPeligroso"), DataTable).AsEnumerable + Dim DtPSRetorno As DataTable + + Dim Name = IfNull(context.Request("Name"), "-1").ToString + + If Name <> "-1" Then + DTUM = DTUM.Where((Function(a) a!ClaveMaterialPeligrosoDescripcion.ToString.ToLower Like ("*" + Name.ToLower + "*"))) + End If + + If DTUM.Count > 0 Then + DtPSRetorno = New DataView(DTUM.OrderBy(Function(a) a!ClaveMaterialPeligrosoDescripcion).CopyToDataTable).ToTable(True, {"CveMaterialPeligroso", "ClaveMaterialPeligrosoDescripcion"}) + Else + DtPSRetorno = Nothing + End If + + If DtPSRetorno IsNot Nothing AndAlso DtPSRetorno.Rows.Count > 0 Then + DtPSRetorno.Columns("CveMaterialPeligroso").ColumnName = "id" + DtPSRetorno.Columns("ClaveMaterialPeligrosoDescripcion").ColumnName = "text" + retorno = JsonConvert.SerializeObject(DtPSRetorno).ToString + context.Response.Write(retorno) + DtPSRetorno.Dispose() + Else + context.Response.Write("[]") + End If + Return retorno + End Function + + Private Function GETSATEmbalajes(ByVal context As HttpContext) As String + Dim retorno As String = "" + + + If context.Application("GlobalDTEmbalajes") Is Nothing Then + Dim ObjGrales As New ClsGenerales + If ObjGrales.GetEmbalajes Then context.Application("GlobalDTEmbalajes") = ObjGrales.DtResultados Else context.Application("GlobalDTEmbalajes") = Nothing + ObjGrales.Dispose() + End If + + Dim DTUM = DirectCast(context.Application("GlobalDTEmbalajes"), DataTable).AsEnumerable + Dim DtPSRetorno As DataTable + + Dim Name = IfNull(context.Request("Name"), "-1").ToString + + If Name <> "-1" Then + DTUM = DTUM.Where((Function(a) a!ClaveEmbalajeDescripcion.ToString.ToLower Like ("*" + Name.ToLower + "*"))) + End If + + If DTUM.Count > 0 Then + DtPSRetorno = New DataView(DTUM.OrderBy(Function(a) a!ClaveEmbalajeDescripcion).CopyToDataTable).ToTable(True, {"CveEmbalaje", "ClaveEmbalajeDescripcion"}) + Else + DtPSRetorno = Nothing + End If + + If DtPSRetorno IsNot Nothing AndAlso DtPSRetorno.Rows.Count > 0 Then + DtPSRetorno.Columns("CveEmbalaje").ColumnName = "id" + DtPSRetorno.Columns("ClaveEmbalajeDescripcion").ColumnName = "text" + retorno = JsonConvert.SerializeObject(DtPSRetorno).ToString + context.Response.Write(retorno) + DtPSRetorno.Dispose() + Else + context.Response.Write("[]") + End If + Return retorno + End Function + + +#End Region + #Region " GET FRACCION ARANCELARIA " Private Function GetFraccionArancelaria(ByVal context As HttpContext) As String Dim retorno As String = "" diff --git a/Inventarios/TraspasoAlmacen.aspx.vb b/Inventarios/TraspasoAlmacen.aspx.vb index 635df042b..14baccff0 100644 --- a/Inventarios/TraspasoAlmacen.aspx.vb +++ b/Inventarios/TraspasoAlmacen.aspx.vb @@ -296,6 +296,10 @@ Partial Class Inventarios_TraspasoAlmacen dt.Columns.Add("Obs") dt.Columns.Add("ImporteIVA", Type.GetType("System.Double")) dt.Columns.Add("PorcentajeIVA", Type.GetType("System.Double")) + dt.Columns.Add("ClaveMaterialPeligroso") + dt.Columns.Add("ClaveEmbalaje") + dt.Columns.Add("Embalaje") + dt.Columns.Add("PesoKg", Type.GetType("System.Decimal")) DtMovimientos = dt @@ -663,42 +667,48 @@ Partial Class Inventarios_TraspasoAlmacen Dim CveClasificacion As Integer Dim DrPS As DataRow = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=CvePS).FiltroPrimero("") - If DrPS IsNot Nothing Then CveClasificacion = DrPS("CveClasificacion").ToString.ToEntero + If DrPS IsNot Nothing Then + CveClasificacion = DrPS("CveClasificacion").ToString.ToEntero + Dim DrUM = GlobalDTUnidadesMedida(UsuarioActual.CveEmpresa).FiltroPrimero($"CveUnidadMedida = {CveUnidadMedida}") - Dim DrUM = GlobalDTUnidadesMedida(UsuarioActual.CveEmpresa).FiltroPrimero($"CveUnidadMedida = {CveUnidadMedida}") + Dim registro As DataRow = DtMovimientos.NewRow + registro.Item("Cantidad") = Cantidad + registro.Item("CveUM") = CveUnidadMedida + registro.Item("UM") = DrUM("UnidadMedida") + registro.Item("UnidadMedida") = DrUM("UnidadMedida") + registro.Item("CvePS") = CvePS + registro.Item("PS") = DrPS("PSCodigo") + registro.Item("Observaciones") = Observaciones + registro.Item("Serie") = Serie + registro.Item("Lote") = Lote + If FechaCaducidad > MinFecha Then registro.Item("FechaCaducidad") = FechaCaducidad + registro.Item("CveClasificacion") = CveClasificacion + registro.Item("CveAF") = -1 + registro.Item("EstatusExistencia") = "1" + registro.Item("CveSeccionAlmacen") = CveSeccionAlmacen + registro.Item("SeccionAlmacen") = SeccionAlmacen + registro.Item("CveSeccionAlmacenDestino") = CveSeccionAlmacenDestino - Dim registro As DataRow = DtMovimientos.NewRow - registro.Item("Cantidad") = Cantidad - registro.Item("CveUM") = CveUnidadMedida - registro.Item("UM") = DrUM("UnidadMedida") - registro.Item("UnidadMedida") = DrUM("UnidadMedida") - registro.Item("CvePS") = CvePS - registro.Item("PS") = DrPS("PSCodigo") - registro.Item("Observaciones") = Observaciones - registro.Item("Serie") = Serie - registro.Item("Lote") = Lote - If FechaCaducidad > MinFecha Then registro.Item("FechaCaducidad") = FechaCaducidad - registro.Item("CveClasificacion") = CveClasificacion - registro.Item("CveAF") = -1 - registro.Item("EstatusExistencia") = "1" - registro.Item("CveSeccionAlmacen") = CveSeccionAlmacen - registro.Item("SeccionAlmacen") = SeccionAlmacen - registro.Item("CveSeccionAlmacenDestino") = CveSeccionAlmacenDestino + registro.Item("TotalImporte") = 0 + registro.Item("PU") = 0 + registro.Item("Descuento") = 0 + registro.Item("SATClaveUM") = DrPS("SATClaveUnidadMedida") + registro.Item("SATClaveProdServ") = DrPS("SATClavePS") + registro.Item("Noidentificacion") = DrPS("Codigo") + registro.Item("CuentaPredial") = "" + registro.Item("Obs") = "" + registro.Item("ImporteIVA") = 0 + registro.Item("PorcentajeIVA") = 0 + registro("ClaveMaterialPeligroso") = DrPS("ClaveMaterialPeligroso") + registro("ClaveEmbalaje") = DrPS("ClaveEmbalaje") + registro("PesoKg") = DrPS("PesoKg") - registro.Item("TotalImporte") = 0 - registro.Item("PU") = 0 - registro.Item("Descuento") = 0 - registro.Item("SATClaveUM") = DrPS("SATClaveUnidadMedida") - registro.Item("SATClaveProdServ") = DrPS("SATClavePS") - registro.Item("Noidentificacion") = DrPS("Codigo") - registro.Item("CuentaPredial") = "" - registro.Item("Obs") = "" - registro.Item("ImporteIVA") = 0 - registro.Item("PorcentajeIVA") = 0 + DtMovimientos.Rows.Add(registro) + RegistraScript("playsonidito('beep-07.wav')") + + End If - DtMovimientos.Rows.Add(registro) - RegistraScript("playsonidito('beep-07.wav')") CargaGvDatos() If Limpia Then @@ -2655,7 +2665,11 @@ Partial Class Inventarios_TraspasoAlmacen ObjFactura.Inv_CveMovimiento = CveMovimientoTimbrado - ObjFactura.Timbre = PreParaTimbreCartaPorte(ObjFactura) + If UsuarioActual.Empresa.Funcionalidad(161) = "1" Then + ObjFactura.Timbre = PreParaTimbreCartaPorte(ObjFactura) + Else + ObjFactura.Timbre = PreParaTimbre(ObjFactura) + End If End Sub Private Function PreParaTimbreCartaPorte(Obj As Modelos.Factura) As CFDITimbre @@ -2698,47 +2712,86 @@ Partial Class Inventarios_TraspasoAlmacen CartaPorte.Mercancias.UnidadPeso = "" CartaPorte.Mercancias.CargoporTasacion = 0 - CartaPorte.FiguraTransporte.AutoTransporteFederal.PermSCT = "TPAF01" - CartaPorte.FiguraTransporte.AutoTransporteFederal.NumPermisoSCT = "1234567890" - CartaPorte.FiguraTransporte.AutoTransporteFederal.NombreAseg = "GNP" - CartaPorte.FiguraTransporte.AutoTransporteFederal.NumPolizaSeguro = "P123" - CartaPorte.FiguraTransporte.AutoTransporteFederal.Vehiculo.ConfigVehicular = "C2" - CartaPorte.FiguraTransporte.AutoTransporteFederal.Vehiculo.PlacaVM = "WTF757A" - CartaPorte.FiguraTransporte.AutoTransporteFederal.Vehiculo.AnioModeloVM = 2007 + Dim Dr As DataRow = DtCamiones.FiltroPrimero(String.Format("CveCamion= {0}", DdlUnidadCamion.SelectedValue)) + + If Dr IsNot Nothing Then + CartaPorte.FiguraTransporte.AutoTransporteFederal.PermSCT = Dr("TipoPermisoSCT").ToString '"TPAF01" + CartaPorte.FiguraTransporte.AutoTransporteFederal.NumPermisoSCT = Dr("NumPermisoSCT").ToString + CartaPorte.FiguraTransporte.AutoTransporteFederal.NombreAseg = Dr("NombreAseguradora").ToString + CartaPorte.FiguraTransporte.AutoTransporteFederal.NumPolizaSeguro = Dr("NumPolizaSeguro").ToString + CartaPorte.FiguraTransporte.AutoTransporteFederal.Vehiculo.ConfigVehicular = Dr("ConfigCartaPorte").ToString '"C2" + CartaPorte.FiguraTransporte.AutoTransporteFederal.Vehiculo.PlacaVM = Dr("Placa").ToString + CartaPorte.FiguraTransporte.AutoTransporteFederal.Vehiculo.AnioModeloVM = Dr("Anio").ToString.ToEntero + End If + + Dim CveSubProyectoOrigen As Integer = GlobalDTAlmacen(UsuarioActual.CveEmpresa, CveAlmacen:=DdlAlmacenOrigen.SelectedValue.ToEntero).FiltroPrimeroValor("CveSubProyecto", "").ToEntero + Dim DomOrigen As CFDICartaPorteDomicilio = Nothing + + If CveSubProyectoOrigen > 0 Then + Dim drr As DataRow = GlobalDTSubProyectos(-1, CveSubProyecto:=CveSubProyectoOrigen).FiltroPrimero("") + DomOrigen = New CFDICartaPorteDomicilio With {.Calle = drr("Calle").ToString, + .Colonia = drr("Colonia").ToString, + .CP = drr("CP").ToString, + .Estado = drr("Estado").ToString, + .Pais = drr("Pais").ToString, + .Municipio = drr("Municipio").ToString, + .Localidad = drr("Localidad").ToString} + End If + + Dim CveSubProyectoDestino As Integer = GlobalDTAlmacen(UsuarioActual.CveEmpresa, CveAlmacen:=DdlAlmacenDestino.SelectedValue.ToEntero).FiltroPrimeroValor("CveSubProyecto", "").ToEntero + Dim DomDestino As CFDICartaPorteDomicilio = Nothing + + If CveSubProyectoOrigen > 0 Then + Dim drr As DataRow = GlobalDTSubProyectos(-1, CveSubProyecto:=CveSubProyectoOrigen).FiltroPrimero("") + DomDestino = New CFDICartaPorteDomicilio With {.Calle = drr("Calle").ToString, + .Colonia = drr("Colonia").ToString, + .CP = drr("CP").ToString, + .Estado = drr("Estado").ToString, + .Pais = drr("Pais").ToString, + .Municipio = drr("Municipio").ToString, + .Localidad = drr("Localidad").ToString} + End If - Dim DomOrigen As New CFDICartaPorteDomicilio With {.Calle = "calle", - .Colonia = "", - .CP = "45200", - .Estado = "JAL", - .Pais = "MEX", - .Localidad = ""} - Dim DomDestino As New CFDICartaPorteDomicilio With {.Calle = "calle destino", - .Colonia = "", - .CP = "45200", - .Estado = "JAL", - .Pais = "MEX", - .Localidad = ""} Dim Ubica As New CFDICartaPorteUbicaciones Ubica.TipoEstacion = "01" Ubica.DistanciaRecorrida = 6 - Ubica.Origen = New CFDICartaPorteUbicacionOrigen With {.RFCRemitente = "CAMJ841219I33", - .FechaHoraSalida = "2021-08-23T11:13:01", - .NombreRemitente = "Empresa", + Ubica.Origen = New CFDICartaPorteUbicacionOrigen With {.RFCRemitente = UsuarioActual.Empresa.RFC, + .FechaHoraSalida = Now.ToString("yyyy-MM-ddTH:mm:ss"),' "2021-08-23T11:13:01", + .NombreRemitente = UsuarioActual.Empresa.Empresa, .Domicilio = DomOrigen} - Ubica.Destino = New CFDICartaPorteUbicacionDestino With {.RFCDestinatario = "CAMJ841219I33", - .FechaHoraProgLlegada = "2021-08-23T11:13:01", - .NombreDestinatario = "Empresa dest", + Ubica.Destino = New CFDICartaPorteUbicacionDestino With {.RFCDestinatario = UsuarioActual.Empresa.RFC,'"CAMJ841219I33", + .FechaHoraProgLlegada = TxtFechaEntrega.Text.ToDate.ToString("yyyy-MM-ddT23:59:59"), + .NombreDestinatario = UsuarioActual.Empresa.Empresa, .Domicilio = DomDestino} CartaPorte.Ubicaciones.Add(Ubica) CartaPorte.FiguraTransporte.ClaveTransporte = "01" - CartaPorte.FiguraTransporte.Operadores.Add(New CFDICartaPorteOperador With {.RFCOperador = "CAMJ841219I33", - .Domicilio = Nothing, - .NombreOperador = "juan Perez", - .NumLicencia = "Num Lic", - .NumRegidTribOperador = "", - .ResidenciaFiscalOperador = ""}) + + Dim ObjAcar As New ClsAcarreos() + + If ObjAcar.GetChofer(DdlChofer.SelectedValue.ToEntero, UsuarioActual.CveEmpresa, 1, -1) Then + Dim dro As DataRow = ObjAcar.DtResultados.Rows(0) + If dro IsNot Nothing Then + Dim DomicilioOperador As New CFDICartaPorteDomicilio With {.Calle = dro("Domicilio").ToString, + .NumeroExterior = dro("NumeroExterior").ToString, + .NumeroInterior = dro("NumeroInterior").ToString, + .Colonia = dro("Colonia").ToString, + .Municipio = dro("Ciudad").ToString, + .Estado = dro("Estado").ToString, + .CP = dro("CP").ToString} + + CartaPorte.FiguraTransporte.Operadores.Add(New CFDICartaPorteOperador With {.RFCOperador = dro("RFC").ToString, + .NombreOperador = dro("Chofer").ToString, + .NumLicencia = dro("Licencia").ToString, + .NumRegidTribOperador = dro("NumRegidTribOperador").ToString, + .ResidenciaFiscalOperador = dro("ResidenciaFiscalOperador").ToString, + .Domicilio = DomicilioOperador}) + + End If + End If + ObjAcar.Dispose() + 'concepto único @@ -2768,18 +2821,19 @@ Partial Class Inventarios_TraspasoAlmacen End If Dim conceptoCarta As New CFDICartaPorteMercancia With { .BienesTransp = drr("SATClaveProdServ").ToString, - .ClaveSTCC = "01334", + .ClaveSTCC = "", 'para metodo ferroviario .Cantidad = drr("Cantidad").ToString.ToDecimal, .Descripción = tPS, .ClaveUnidad = drr("SATClaveUM").ToString, .Unidad = drr("UM").ToString, .Dimensiones = "", - .MaterialPeligroso = "", - .Embalaje = "", - .DescripEmbalaje = "", - .PesoenKg = 203, + .MaterialPeligroso = If(drr("ClaveMaterialPeligroso").ToString <> "", "Sí", "No"), + .ClaveMaterialPeligroso = drr("ClaveMaterialPeligroso").ToString, + .Embalaje = drr("ClaveEmbalaje").ToString, + .DescripEmbalaje = drr("Embalaje").ToString, + .PesoenKg = drr("PesoKg").ToString.ToDecimal, .ValorMercancia = drr("PU").ToString.ToDecimal, - .Moneda = "MXN", 'tempral + .Moneda = "MXN", 'temporal .FraccionArrancelaria = "", .UUIDComercioExt = "" } @@ -2795,6 +2849,75 @@ Partial Class Inventarios_TraspasoAlmacen Return Timbre End Function + Private Function PreParaTimbre(Obj As Modelos.Factura) As CFDITimbre + Dim Timbre As New CFDITimbre + Timbre.Comprobante.TipoComprobante = "T" + Timbre.Comprobante.Folio = Obj.Folio.ToString + Timbre.Comprobante.Serie = Obj.Serie + Timbre.Comprobante.Fecha = Obj.Fecha + Timbre.Comprobante.FormadePago = Obj.FormaPagoSAT33 + Timbre.Comprobante.CondicionesdePago = "-" + Timbre.Comprobante.MetodoPago = Obj.ClaveMetodoPagoSAT + Timbre.Comprobante.Subtotal = Obj.SubTotal + Timbre.Comprobante.Descuentos = Obj.Descuento + Timbre.Comprobante.Moneda = Obj.MonedaSAT + Timbre.Comprobante.TipoCambio = If(Obj.CveMoneda = 1, "1", Obj.TipoCambio.ToString) + Timbre.Comprobante.Total = Obj.Total + + Timbre.Comprobante.LugarExpedicion = Obj.SubProyecto.CP + Timbre.Comprobante.Confirmacion = "" + + Timbre.Receptor.RFC = "XAXX010101000" + Timbre.Receptor.Nombre = UsuarioActual.Empresa.Empresa + Timbre.Receptor.UsoCFDI = "P01" + + Dim totSubTotal As Decimal = Obj.SubTotal + Dim totIVA As Decimal = Obj.IVA + Dim totRetIVA As Decimal = Obj.RetIVA + Dim totRetISR As Decimal = Obj.RetISR + Dim i As Integer = 1 + + 'DETALLES + Dim tPS As String = "" + + For Each drr As DataRow In Obj.DtDetalle.Rows + If drr("PS").ToString.Length = 1 Then + tPS = drr("Obs").ToString + Else + If drr("PS").ToString.Length = 0 Then + tPS = "" + Else + tPS = String.Format("{0} {1}", drr("PS"), drr("Obs")) + End If + End If + + 'CONDICIONANTE, ESPECIAL + If UsuarioActual.CveEmpresa = 15 Then drr("UM") = "" 'LES COMENTAN QUE NO DEBE IR LA ETIQUETA DE LA UNIDAD EN EL PRODUCTO + + Dim concepto As New CFDIConceptos With {.Cantidad = drr("Cantidad").ToString.ToDecimal, + .Descripcion = tPS, + .ValorUnitario = drr("PU").ToString.ToDecimal, + .Importe = drr("TotalImporte").ToString.ToDecimal, + .Descuento = drr("Descuento").ToString.ToDecimal, + .Unidad = drr("UM").ToString, + .ClaveUnidad = drr("SATClaveUM").ToString, + .ClaveProdServ = drr("SATClaveProdServ").ToString, + .Noidentificacion = drr("Noidentificacion").ToString, + .CuentaPredial = drr("CuentaPredial").ToString} + 'VERIFICA SUMA SUBTOTALES + If i = Obj.DtDetalle.Rows.Count AndAlso totSubTotal <> concepto.Importe Then 'PROCESO DE AJUSTA DE DECIMALES + concepto.Importe = totSubTotal + End If + totSubTotal = totSubTotal - concepto.Importe + + 'SIEMPRE ESTAMOS AGREGANDO EL IVA + 'concepto.Impuestos.Add(New CFDIConceptosImpuestos With {.TrasladooRetencion = "T", .Base = concepto.Importe - concepto.Descuento, .TasaOCuota = drr("PorcentajeIVA").ToString.ToDecimal, .Impuesto = "002", .Importe = drr("ImporteIVA").ToString.ToDecimal}) + + Timbre.Conceptos.Add(concepto) + i += 1 + Next + Return Timbre + End Function Private Sub PrepararTimbrado(ByRef FM As Modelos.FemsaFactura, ByRef TmpDT7Eleven As DataTable, ByRef TmpDTComplementosTimbrado As DataTable) FM.AplicaFEMSA = False FM.FEMSA_NumSociedad = "" diff --git a/Ventas/ProductosServicios.aspx b/Ventas/ProductosServicios.aspx index bae47738f..3d4835b4c 100644 --- a/Ventas/ProductosServicios.aspx +++ b/Ventas/ProductosServicios.aspx @@ -991,6 +991,39 @@
+
+
+
+ + Carta Porte +
+
+
+
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+
+
diff --git a/Ventas/ProductosServicios.aspx.vb b/Ventas/ProductosServicios.aspx.vb index db1b20474..7118644ca 100644 --- a/Ventas/ProductosServicios.aspx.vb +++ b/Ventas/ProductosServicios.aspx.vb @@ -799,6 +799,20 @@ Partial Class ProductosyServicios If ObjProductosServicios.ClaveSATUnidadAduanaDescripcion.ToString <> Nothing Then LblUnidadAduana.Text = ObjProductosServicios.ClaveSATUnidadAduanaDescripcion.ToString End If + + If ObjProductosServicios.CveMaterialPeligroso > 0 Then + DdlMaterialPeligroso.SelectedValue = ObjProductosServicios.CveMaterialPeligroso.ToString + DdlMaterialPeligroso.SelectedText = GlobalDTMaterialPeligroso(ObjProductosServicios.CveMaterialPeligroso).FiltroPrimeroValor("ClaveMaterialPeligrosoDescripcion") + End If + If ObjProductosServicios.CveEmbalaje > 0 Then + DdlEmbalaje.SelectedValue = ObjProductosServicios.CveEmbalaje.ToString + DdlEmbalaje.SelectedText = GlobalDTEmbalajes(ObjProductosServicios.CveEmbalaje).FiltroPrimeroValor("ClaveEmbalajeDescripcion") + End If + + If ObjProductosServicios.PesoKg > 0 Then + TxtPesoKg.Text = ObjProductosServicios.PesoKg.ToString + End If + DdlTipoPSDes.SelectedValueExist(ObjProductosServicios.CveClasificacionDetalle.ToString) DdlUnidadMedida.SelectedValue = ObjProductosServicios.CveUnidadMedida.ToString CveUnidadMedida = ObjProductosServicios.CveUnidadMedida.ToString.ToEntero @@ -940,6 +954,8 @@ Partial Class ProductosyServicios LnkUnificar.Visible = True ChkEsOutSourcing.Checked = ObjProductosServicios.EsOutSourcing ChkPrecioLibre.Checked = ObjProductosServicios.PrecioLibre + + Else Alert("El Producto o Servicio Solicitado no existe, por favor revise su búsqueda.", TipoMensaje.MsgAdvertencia) RegistraScript("$('#C_Tab_TabPaquetes_tab').css('display' , 'none')") @@ -979,6 +995,18 @@ Partial Class ProductosyServicios Public Sub CargaDdlFraccionArancelaria() DdlFraccionArancelaria.setEsWebService(True) DdlFraccionArancelaria.Attributes.Add("data-metodo", "getfraccionarancelaria") + + + If UsuarioActual.Empresa.Funcionalidad(161) = "1" Then + divCartaPorte.Visible = True + + DdlMaterialPeligroso.setEsWebService(True) + DdlMaterialPeligroso.Attributes.Add("data-metodo", "getsatmatpeligroso") + + DdlEmbalaje.setEsWebService(True) + DdlEmbalaje.Attributes.Add("data-metodo", "getsatembalajes") + End If + End Sub Private Sub VerificaRequiereSerieLote() If UsuarioActual.CveEmpresa.Contiene(80, 72) And DdlClasificacion.SelectedIndex > 0 Then @@ -1301,7 +1329,8 @@ Partial Class ProductosyServicios CveClasificacionDetalle:=DdlTipoPSDes.SelectedValue.ToEntero, CveTamaño:=CveTamaño, CveModelo:=DdlModelo.SelectedValue.ToEntero(), CveMedida:=DdlMedida.SelectedValue.ToEntero(), CveRinTamaño:=DdlRin.SelectedValue.ToEntero(), ClaveImpuestoEmpaque:=DdlImpEmpaque.SelectedValue.ToString, ClaveImpuestoUM:=DdlImpUM.SelectedValue.ToString, ClaveCategoriaToxicidad:=DdlCategoriaToxicidad.SelectedValue.ToString, - ClaveImpuestoTipoProducto:=DdlImpTipoProducto.SelectedValue.ToString, EsOutSourcing:=ChkEsOutSourcing.Checked, TiempoCaducidad:=TiempoCaducidad, CvePSAdicionalVigencia:=DdlPSAdicionalVigencia.SelectedValue.ToEntero(), PrecioLibre:=ChkPrecioLibre.Checked) > 0 Then + ClaveImpuestoTipoProducto:=DdlImpTipoProducto.SelectedValue.ToString, EsOutSourcing:=ChkEsOutSourcing.Checked, TiempoCaducidad:=TiempoCaducidad, CvePSAdicionalVigencia:=DdlPSAdicionalVigencia.SelectedValue.ToEntero(), PrecioLibre:=ChkPrecioLibre.Checked, + CveMaterialPeligroso:=DdlMaterialPeligroso.SelectedValue.ToEntero, CveEmbalaje:=DdlEmbalaje.SelectedValue.ToEntero, PesoKg:=TxtPesoKg.Text.ToDecimal) > 0 Then ViewState("CvePS") = ObjProductosServicios.CvePS For Each GVR As GridViewRow In GvImpuestosLocales.Rows If GVR.FCCheckBox("ChkDeduccion").Checked Then @@ -1350,7 +1379,8 @@ Partial Class ProductosyServicios CveModelo:=DdlModelo.SelectedValue.ToEntero(), CveMedida:=DdlMedida.SelectedValue.ToEntero(), CveRinTamaño:=DdlRin.SelectedValue.ToEntero(), ClaveImpuestoEmpaque:=DdlImpEmpaque.SelectedValue.ToString, ClaveImpuestoUM:=DdlImpUM.SelectedValue.ToString, ClaveCategoriaToxicidad:=DdlCategoriaToxicidad.SelectedValue.ToString, ClaveImpuestoTipoProducto:=DdlImpTipoProducto.SelectedValue.ToString, EsOutSourcing:=ChkEsOutSourcing.Checked, - AplicaSerie:=ChkSerie.Checked, AplicaLote:=ChkLote.Checked, AplicaCaducidad:=ChkCaducidad.Checked, AplicaSeccion:=ChkSeccion.Checked, TiempoCaducidad:=TiempoCaducidad, CvePSAdicionalVigencia:=DdlPSAdicionalVigencia.SelectedValue.ToEntero(), PrecioLibre:=ChkPrecioLibre.Checked) Then + AplicaSerie:=ChkSerie.Checked, AplicaLote:=ChkLote.Checked, AplicaCaducidad:=ChkCaducidad.Checked, AplicaSeccion:=ChkSeccion.Checked, TiempoCaducidad:=TiempoCaducidad, CvePSAdicionalVigencia:=DdlPSAdicionalVigencia.SelectedValue.ToEntero(), PrecioLibre:=ChkPrecioLibre.Checked, + CveMaterialPeligroso:=DdlMaterialPeligroso.SelectedValue.ToEntero, CveEmbalaje:=DdlEmbalaje.SelectedValue.ToEntero, PesoKg:=TxtPesoKg.Text.ToDecimal) Then If Not ObjProductosServicios.LimpiaImpuestosLocales(CvePS) Then TieneError = True @@ -2211,6 +2241,8 @@ Partial Class ProductosyServicios #End Region + + #Region " ECOMMERCE " Private Sub InicializaEcommerce() AplicaEcommerce = False