Merge branch 'master' of http://jperez@192.168.10.111:8383/SIG.git
This commit is contained in:
@@ -1159,10 +1159,7 @@ Public Class ClsBancos
|
||||
End If
|
||||
End If
|
||||
Mensaje = ObjTimbrado.MensajeErrorCFDI
|
||||
|
||||
GuardaLog(ObjTimbrado.MensajeErrorCFDI)
|
||||
Timbre = Nothing
|
||||
|
||||
Else
|
||||
GuardaLog(Mensaje)
|
||||
End If
|
||||
|
||||
@@ -895,10 +895,10 @@ Public Class Timbrado
|
||||
Equivalencia = 1
|
||||
'condiciones especiales para el pago en pesos, facturas en moneda extranjera
|
||||
ElseIf MonedaPago = "MXN" AndAlso VentaAbreviaturaSAT <> "MXN" Then
|
||||
VentaTipoCambio = Math.Round(VentaTipoCambio, 6)
|
||||
VentaTipoCambio = Math.Round(VentaTipoCambio, 10)
|
||||
Equivalencia = Math.Round((1 / VentaTipoCambio), 10)
|
||||
ElseIf MonedaPago = "USD" AndAlso VentaAbreviaturaSAT <> "USD" Then
|
||||
VentaTipoCambio = Math.Round(VentaTipoCambio, 6)
|
||||
VentaTipoCambio = Math.Round(VentaTipoCambio, 10)
|
||||
Equivalencia = VentaTipoCambio
|
||||
End If
|
||||
|
||||
@@ -924,8 +924,8 @@ Public Class Timbrado
|
||||
.TasaOCuota = drp("PorcentajeImpuesto").ToString().ToDecimal,
|
||||
.Impuesto = drp("TipoImpuesto").ToString,
|
||||
.Importe = drp("Importe").ToString().ToDecimal.RoundSQL,
|
||||
.BaseMN = (drp("Base").ToString.ToDecimal / Equivalencia).RoundSQL(6),
|
||||
.ImporteMN = (drp("Importe").ToString.ToDecimal / Equivalencia).RoundSQL(6)
|
||||
.BaseMN = (drp("Base").ToString.ToDecimal / Equivalencia).RoundSQL(2),
|
||||
.ImporteMN = (drp("Importe").ToString.ToDecimal / Equivalencia).RoundSQL(2)
|
||||
}
|
||||
)
|
||||
|
||||
@@ -2552,74 +2552,140 @@ concep.DescripcionesEspecificas.NumeroSerie)
|
||||
|
||||
Dim Carta As CFDICartaPorte = ObjCFDITimbre.Complementos.CartaPorte
|
||||
|
||||
''DATOS GENERALES
|
||||
cfdi.CartaPorte30("", Carta.TranspInternac, Carta.RegimenAduanero, Carta.EntradaSalidaMercancia, Carta.PaisOrigenDestino, Carta.ViaEntradaSalida, Carta.TotalDistanciaRecorrida, Carta.RegistroISTMO, Carta.UbicacionPoloOrigen, Carta.UbicacionPoloDestino)
|
||||
If UsuarioActual.CveEmpresa = 1 Then
|
||||
''DATOS GENERALES
|
||||
cfdi.CartaPorte31("", Carta.TranspInternac, Carta.EntradaSalidaMercancia, Carta.PaisOrigenDestino, Carta.ViaEntradaSalida, Carta.TotalDistanciaRecorrida, Carta.RegistroISTMO, Carta.UbicacionPoloOrigen, Carta.UbicacionPoloDestino)
|
||||
|
||||
'UBICACIONES
|
||||
If Carta.Ubicaciones IsNot Nothing AndAlso Carta.Ubicaciones.Count > 0 Then
|
||||
For Each ubica As CFDICartaPorteUbicacion In Carta.Ubicaciones
|
||||
'origen
|
||||
cfdi.CartaPorte30Ubicacion(ubica.TipoUbicacion, ubica.IDUbicacion, ubica.RFCRemitenteDestinatario, ubica.NombreRemitenteDestinatario, ubica.NumRegIdTrib, ubica.ResidenciaFiscal, ubica.NumEstacion, ubica.NombreEstacion, ubica.NavegacionTrafico, ubica.FechaHoraSalidaLlegada, ubica.TipoEstacion, ubica.DistanciaRecorrida)
|
||||
'cfdi.CartaPorteOrigen(ubica.Origen.IDOrigen, ubica.Origen.RFCRemitente, ubica.Origen.NombreRemitente, ubica.NumRegIdTrib, ubica.Origen.ResidenciaFiscal, ubica.Origen.NumEstacion, ubica.Origen.NombreEstacion, ubica.Origen.NavegacionTrafico, ubica.Origen.FechaHoraSalida)
|
||||
cfdi.CartaPorte30Domicilio(ubica.Domicilio.Calle, ubica.Domicilio.NumeroExterior, ubica.Domicilio.NumeroInterior, ubica.Domicilio.Colonia, ubica.Domicilio.Localidad, ubica.Domicilio.Referencia, ubica.Domicilio.Municipio, ubica.Domicilio.Estado, ubica.Domicilio.Pais, ubica.Domicilio.CP)
|
||||
Next
|
||||
End If
|
||||
|
||||
'MERCANCIAS
|
||||
If Carta.Mercancias IsNot Nothing Then
|
||||
cfdi.CartaPorte30Mercancias(Carta.Mercancias.PesoBrutoTotal, Carta.Mercancias.UnidadPeso, Carta.Mercancias.PesoNetoTotal, Carta.Mercancias.NumTotalMercancias, Carta.Mercancias.CargoporTasacion, Carta.Mercancias.LogisticaInversaRecoleccionDevolucion)
|
||||
If Carta.Mercancias IsNot Nothing AndAlso Carta.Mercancias.Mercancias.Count > 0 Then
|
||||
For Each concep As CFDICartaPorteMercancia In Carta.Mercancias.Mercancias
|
||||
If concep.ValorMercancia <= 0 Then concep.Moneda = ""
|
||||
cfdi.CartaPorte30Mercancia(concep.BienesTransp, concep.ClaveSTCC, concep.Descripción, concep.Cantidad, concep.ClaveUnidad, concep.Unidad, concep.Dimensiones, concep.MaterialPeligroso, concep.ClaveMaterialPeligroso, If(concep.ClaveMaterialPeligroso <> "", concep.Embalaje, ""), If(concep.ClaveMaterialPeligroso <> "", concep.DescripEmbalaje, ""),
|
||||
concep.SectorCOFEPRIS, concep.NombreIngredienteActivo, concep.NomQuimico, concep.DenominacionGenericaProd, concep.DenominacionDistintivaProd, concep.Fabricante, concep.FechaCaducidad, concep.LoteMedicamento, concep.FormaFarmaceutica, concep.CondicionesEspTransp, concep.RegistroSanitarioFolioAutorizacion,
|
||||
If(Carta.TranspInternac <> "No", concep.PermisoImportacion, ""), If(Carta.TranspInternac <> "No", concep.FolioImpoVUCEM, ""), concep.NumCAS, If(Carta.TranspInternac <> "No", concep.RazonSocialEmpImp, ""), concep.NumRegSanPlagCOFEPRIS, concep.DatosFabricante, concep.DatosFormulador, concep.DatosMaquilador, concep.UsoAutorizado,
|
||||
concep.PesoenKg, concep.ValorMercancia, concep.Moneda, concep.FraccionArrancelaria, concep.UUIDComercioExt, concep.TipoMateria, If(concep.TipoMateria = "05", concep.TipoMateriaDescripcion, ""))
|
||||
For Each transp As CFDICartaPorteMercanciaTransporta In concep.MercanciasCantidadTransporta
|
||||
cfdi.CartaPorte30CantidadTransporta(transp.Cantidad, transp.IDOrigen, transp.IDDestino, transp.CvesTransportes)
|
||||
Next
|
||||
'UBICACIONES
|
||||
If Carta.Ubicaciones IsNot Nothing AndAlso Carta.Ubicaciones.Count > 0 Then
|
||||
For Each ubica As CFDICartaPorteUbicacion In Carta.Ubicaciones
|
||||
'origen
|
||||
cfdi.CartaPorte31Ubicacion(ubica.TipoUbicacion, ubica.IDUbicacion, ubica.RFCRemitenteDestinatario, ubica.NombreRemitenteDestinatario, ubica.NumRegIdTrib, ubica.ResidenciaFiscal, ubica.NumEstacion, ubica.NombreEstacion, ubica.NavegacionTrafico, ubica.FechaHoraSalidaLlegada, ubica.TipoEstacion, ubica.DistanciaRecorrida)
|
||||
'cfdi.CartaPorteOrigen(ubica.Origen.IDOrigen, ubica.Origen.RFCRemitente, ubica.Origen.NombreRemitente, ubica.NumRegIdTrib, ubica.Origen.ResidenciaFiscal, ubica.Origen.NumEstacion, ubica.Origen.NombreEstacion, ubica.Origen.NavegacionTrafico, ubica.Origen.FechaHoraSalida)
|
||||
cfdi.CartaPorte31Domicilio(ubica.Domicilio.Calle, ubica.Domicilio.NumeroExterior, ubica.Domicilio.NumeroInterior, ubica.Domicilio.Colonia, ubica.Domicilio.Localidad, ubica.Domicilio.Referencia, ubica.Domicilio.Municipio, ubica.Domicilio.Estado, ubica.Domicilio.Pais, ubica.Domicilio.CP)
|
||||
Next
|
||||
End If
|
||||
End If
|
||||
'
|
||||
If Carta.FiguraTransporte IsNot Nothing Then
|
||||
|
||||
If Carta.FiguraTransporte.AutoTransporte IsNot Nothing Then
|
||||
|
||||
cfdi.CartaPorte30Autotransporte(Carta.FiguraTransporte.AutoTransporte.PermisoSCT, Carta.FiguraTransporte.AutoTransporte.NumPermisoSCT)
|
||||
|
||||
cfdi.CartaPorte30IdentificacionVehicular(Carta.FiguraTransporte.AutoTransporte.Vehiculo.ConfigVehicular, Carta.FiguraTransporte.AutoTransporte.Vehiculo.PesoBrutoVehicular, Carta.FiguraTransporte.AutoTransporte.Vehiculo.PlacaVM, Carta.FiguraTransporte.AutoTransporte.Vehiculo.AnioModeloVM)
|
||||
|
||||
If Carta.Mercancias.Mercancias.Max(Function(x) x.MaterialPeligroso) = "" Then 'si no hay material peligro se limpian los valores
|
||||
Carta.FiguraTransporte.AutoTransporte.NombreSeguroMedioAmbiente = ""
|
||||
Carta.FiguraTransporte.AutoTransporte.PolizaSeguroMedioAmbiente = ""
|
||||
End If
|
||||
|
||||
cfdi.CartaPorte30Seguros(Carta.FiguraTransporte.AutoTransporte.NombreSeguroResponsabilidadCivil, Carta.FiguraTransporte.AutoTransporte.PolizaSeguroResponsabilidadCivil,
|
||||
Carta.FiguraTransporte.AutoTransporte.NombreSeguroMedioAmbiente, Carta.FiguraTransporte.AutoTransporte.PolizaSeguroMedioAmbiente,
|
||||
Carta.FiguraTransporte.AutoTransporte.NombreSeguroCarga, Carta.FiguraTransporte.AutoTransporte.PolizaSeguroCarga,
|
||||
Carta.FiguraTransporte.AutoTransporte.PrimaSeguro)
|
||||
|
||||
If Carta.FiguraTransporte.AutoTransporte.Remolques IsNot Nothing AndAlso Carta.FiguraTransporte.AutoTransporte.Remolques.Count > 0 Then
|
||||
For Each concep As CFDICartaPorteRemolque In Carta.FiguraTransporte.AutoTransporte.Remolques
|
||||
cfdi.CartaPorte30Remolque(concep.SubTipoRemolque, concep.Placa)
|
||||
'MERCANCIAS
|
||||
If Carta.Mercancias IsNot Nothing Then
|
||||
cfdi.CartaPorte31Mercancias(Carta.Mercancias.PesoBrutoTotal, Carta.Mercancias.UnidadPeso, Carta.Mercancias.PesoNetoTotal, Carta.Mercancias.NumTotalMercancias, Carta.Mercancias.CargoporTasacion, Carta.Mercancias.LogisticaInversaRecoleccionDevolucion)
|
||||
If Carta.Mercancias IsNot Nothing AndAlso Carta.Mercancias.Mercancias.Count > 0 Then
|
||||
For Each concep As CFDICartaPorteMercancia In Carta.Mercancias.Mercancias
|
||||
If concep.ValorMercancia <= 0 Then concep.Moneda = ""
|
||||
cfdi.CartaPorte31Mercancia(concep.BienesTransp, concep.ClaveSTCC, concep.Descripción, concep.Cantidad, concep.ClaveUnidad, concep.Unidad, concep.Dimensiones, concep.MaterialPeligroso, concep.ClaveMaterialPeligroso, If(concep.ClaveMaterialPeligroso <> "", concep.Embalaje, ""), If(concep.ClaveMaterialPeligroso <> "", concep.DescripEmbalaje, ""),
|
||||
concep.SectorCOFEPRIS, concep.NombreIngredienteActivo, concep.NomQuimico, concep.DenominacionGenericaProd, concep.DenominacionDistintivaProd, concep.Fabricante, concep.FechaCaducidad, concep.LoteMedicamento, concep.FormaFarmaceutica, concep.CondicionesEspTransp, concep.RegistroSanitarioFolioAutorizacion,
|
||||
If(Carta.TranspInternac <> "No", concep.PermisoImportacion, ""), If(Carta.TranspInternac <> "No", concep.FolioImpoVUCEM, ""), concep.NumCAS, If(Carta.TranspInternac <> "No", concep.RazonSocialEmpImp, ""), concep.NumRegSanPlagCOFEPRIS, concep.DatosFabricante, concep.DatosFormulador, concep.DatosMaquilador, concep.UsoAutorizado,
|
||||
concep.PesoenKg, concep.ValorMercancia, concep.Moneda, concep.FraccionArrancelaria, concep.UUIDComercioExt, concep.TipoMateria, If(concep.TipoMateria = "05", concep.TipoMateriaDescripcion, ""))
|
||||
For Each transp As CFDICartaPorteMercanciaTransporta In concep.MercanciasCantidadTransporta
|
||||
cfdi.CartaPorte31CantidadTransporta(transp.Cantidad, transp.IDOrigen, transp.IDDestino, transp.CvesTransportes)
|
||||
Next
|
||||
Next
|
||||
End If
|
||||
End If
|
||||
'
|
||||
If Carta.FiguraTransporte IsNot Nothing Then
|
||||
|
||||
If Carta.FiguraTransporte.Operadores IsNot Nothing AndAlso Carta.FiguraTransporte.Operadores.Count > 0 Then
|
||||
For Each concep As CFDICartaPorteOperador In Carta.FiguraTransporte.Operadores
|
||||
cfdi.CartaPorte30TiposFigura(concep.TipoFigura, concep.RFCFigura, concep.NumLicencia, concep.NombreFigura, concep.NumRegidTribFigura, If(concep.ResidenciaFiscalFigura <> "MEX", concep.ResidenciaFiscalFigura, ""))
|
||||
If concep.TipoFigura.Contiene("02", "03") Then ' “02”- Propietario o “03” -Arrendador
|
||||
cfdi.CartaPorte30PartesTransporte("PT01")
|
||||
cfdi.CartaPorte30PartesTransporteDomicilio(concep.Domicilio.Calle, concep.Domicilio.NumeroExterior, concep.Domicilio.NumeroInterior, concep.Domicilio.Colonia, concep.Domicilio.Localidad, concep.Domicilio.Referencia, concep.Domicilio.Municipio, concep.Domicilio.Estado, concep.Domicilio.Pais, concep.Domicilio.CP)
|
||||
If Carta.FiguraTransporte.AutoTransporte IsNot Nothing Then
|
||||
|
||||
cfdi.CartaPorte31Autotransporte(Carta.FiguraTransporte.AutoTransporte.PermisoSCT, Carta.FiguraTransporte.AutoTransporte.NumPermisoSCT)
|
||||
|
||||
cfdi.CartaPorte31IdentificacionVehicular(Carta.FiguraTransporte.AutoTransporte.Vehiculo.ConfigVehicular, Carta.FiguraTransporte.AutoTransporte.Vehiculo.PesoBrutoVehicular, Carta.FiguraTransporte.AutoTransporte.Vehiculo.PlacaVM, Carta.FiguraTransporte.AutoTransporte.Vehiculo.AnioModeloVM)
|
||||
|
||||
If Carta.Mercancias.Mercancias.Max(Function(x) x.MaterialPeligroso) = "" Then 'si no hay material peligro se limpian los valores
|
||||
Carta.FiguraTransporte.AutoTransporte.NombreSeguroMedioAmbiente = ""
|
||||
Carta.FiguraTransporte.AutoTransporte.PolizaSeguroMedioAmbiente = ""
|
||||
End If
|
||||
|
||||
cfdi.CartaPorte31Seguros(Carta.FiguraTransporte.AutoTransporte.NombreSeguroResponsabilidadCivil, Carta.FiguraTransporte.AutoTransporte.PolizaSeguroResponsabilidadCivil,
|
||||
Carta.FiguraTransporte.AutoTransporte.NombreSeguroMedioAmbiente, Carta.FiguraTransporte.AutoTransporte.PolizaSeguroMedioAmbiente,
|
||||
Carta.FiguraTransporte.AutoTransporte.NombreSeguroCarga, Carta.FiguraTransporte.AutoTransporte.PolizaSeguroCarga,
|
||||
Carta.FiguraTransporte.AutoTransporte.PrimaSeguro)
|
||||
|
||||
If Carta.FiguraTransporte.AutoTransporte.Remolques IsNot Nothing AndAlso Carta.FiguraTransporte.AutoTransporte.Remolques.Count > 0 Then
|
||||
For Each concep As CFDICartaPorteRemolque In Carta.FiguraTransporte.AutoTransporte.Remolques
|
||||
cfdi.CartaPorte31Remolque(concep.SubTipoRemolque, concep.Placa)
|
||||
Next
|
||||
End If
|
||||
End If
|
||||
|
||||
If Carta.FiguraTransporte.Operadores IsNot Nothing AndAlso Carta.FiguraTransporte.Operadores.Count > 0 Then
|
||||
For Each concep As CFDICartaPorteOperador In Carta.FiguraTransporte.Operadores
|
||||
cfdi.CartaPorte31TiposFigura(concep.TipoFigura, concep.RFCFigura, concep.NumLicencia, concep.NombreFigura, concep.NumRegidTribFigura, If(concep.ResidenciaFiscalFigura <> "MEX", concep.ResidenciaFiscalFigura, ""))
|
||||
If concep.TipoFigura.Contiene("02", "03") Then ' “02”- Propietario o “03” -Arrendador
|
||||
cfdi.CartaPorte31PartesTransporte("PT01")
|
||||
cfdi.CartaPorte31PartesTransporteDomicilio(concep.Domicilio.Calle, concep.Domicilio.NumeroExterior, concep.Domicilio.NumeroInterior, concep.Domicilio.Colonia, concep.Domicilio.Localidad, concep.Domicilio.Referencia, concep.Domicilio.Municipio, concep.Domicilio.Estado, concep.Domicilio.Pais, concep.Domicilio.CP)
|
||||
End If
|
||||
Next
|
||||
End If
|
||||
End If
|
||||
Else
|
||||
''DATOS GENERALES
|
||||
cfdi.CartaPorte30("", Carta.TranspInternac, Carta.RegimenAduanero, Carta.EntradaSalidaMercancia, Carta.PaisOrigenDestino, Carta.ViaEntradaSalida, Carta.TotalDistanciaRecorrida, Carta.RegistroISTMO, Carta.UbicacionPoloOrigen, Carta.UbicacionPoloDestino)
|
||||
|
||||
'UBICACIONES
|
||||
If Carta.Ubicaciones IsNot Nothing AndAlso Carta.Ubicaciones.Count > 0 Then
|
||||
For Each ubica As CFDICartaPorteUbicacion In Carta.Ubicaciones
|
||||
'origen
|
||||
cfdi.CartaPorte30Ubicacion(ubica.TipoUbicacion, ubica.IDUbicacion, ubica.RFCRemitenteDestinatario, ubica.NombreRemitenteDestinatario, ubica.NumRegIdTrib, ubica.ResidenciaFiscal, ubica.NumEstacion, ubica.NombreEstacion, ubica.NavegacionTrafico, ubica.FechaHoraSalidaLlegada, ubica.TipoEstacion, ubica.DistanciaRecorrida)
|
||||
'cfdi.CartaPorteOrigen(ubica.Origen.IDOrigen, ubica.Origen.RFCRemitente, ubica.Origen.NombreRemitente, ubica.NumRegIdTrib, ubica.Origen.ResidenciaFiscal, ubica.Origen.NumEstacion, ubica.Origen.NombreEstacion, ubica.Origen.NavegacionTrafico, ubica.Origen.FechaHoraSalida)
|
||||
cfdi.CartaPorte30Domicilio(ubica.Domicilio.Calle, ubica.Domicilio.NumeroExterior, ubica.Domicilio.NumeroInterior, ubica.Domicilio.Colonia, ubica.Domicilio.Localidad, ubica.Domicilio.Referencia, ubica.Domicilio.Municipio, ubica.Domicilio.Estado, ubica.Domicilio.Pais, ubica.Domicilio.CP)
|
||||
Next
|
||||
End If
|
||||
|
||||
'MERCANCIAS
|
||||
If Carta.Mercancias IsNot Nothing Then
|
||||
cfdi.CartaPorte30Mercancias(Carta.Mercancias.PesoBrutoTotal, Carta.Mercancias.UnidadPeso, Carta.Mercancias.PesoNetoTotal, Carta.Mercancias.NumTotalMercancias, Carta.Mercancias.CargoporTasacion, Carta.Mercancias.LogisticaInversaRecoleccionDevolucion)
|
||||
If Carta.Mercancias IsNot Nothing AndAlso Carta.Mercancias.Mercancias.Count > 0 Then
|
||||
For Each concep As CFDICartaPorteMercancia In Carta.Mercancias.Mercancias
|
||||
If concep.ValorMercancia <= 0 Then concep.Moneda = ""
|
||||
cfdi.CartaPorte30Mercancia(concep.BienesTransp, concep.ClaveSTCC, concep.Descripción, concep.Cantidad, concep.ClaveUnidad, concep.Unidad, concep.Dimensiones, concep.MaterialPeligroso, concep.ClaveMaterialPeligroso, If(concep.ClaveMaterialPeligroso <> "", concep.Embalaje, ""), If(concep.ClaveMaterialPeligroso <> "", concep.DescripEmbalaje, ""),
|
||||
concep.SectorCOFEPRIS, concep.NombreIngredienteActivo, concep.NomQuimico, concep.DenominacionGenericaProd, concep.DenominacionDistintivaProd, concep.Fabricante, concep.FechaCaducidad, concep.LoteMedicamento, concep.FormaFarmaceutica, concep.CondicionesEspTransp, concep.RegistroSanitarioFolioAutorizacion,
|
||||
If(Carta.TranspInternac <> "No", concep.PermisoImportacion, ""), If(Carta.TranspInternac <> "No", concep.FolioImpoVUCEM, ""), concep.NumCAS, If(Carta.TranspInternac <> "No", concep.RazonSocialEmpImp, ""), concep.NumRegSanPlagCOFEPRIS, concep.DatosFabricante, concep.DatosFormulador, concep.DatosMaquilador, concep.UsoAutorizado,
|
||||
concep.PesoenKg, concep.ValorMercancia, concep.Moneda, concep.FraccionArrancelaria, concep.UUIDComercioExt, concep.TipoMateria, If(concep.TipoMateria = "05", concep.TipoMateriaDescripcion, ""))
|
||||
For Each transp As CFDICartaPorteMercanciaTransporta In concep.MercanciasCantidadTransporta
|
||||
cfdi.CartaPorte30CantidadTransporta(transp.Cantidad, transp.IDOrigen, transp.IDDestino, transp.CvesTransportes)
|
||||
Next
|
||||
Next
|
||||
End If
|
||||
End If
|
||||
'
|
||||
If Carta.FiguraTransporte IsNot Nothing Then
|
||||
|
||||
If Carta.FiguraTransporte.AutoTransporte IsNot Nothing Then
|
||||
|
||||
cfdi.CartaPorte30Autotransporte(Carta.FiguraTransporte.AutoTransporte.PermisoSCT, Carta.FiguraTransporte.AutoTransporte.NumPermisoSCT)
|
||||
|
||||
cfdi.CartaPorte30IdentificacionVehicular(Carta.FiguraTransporte.AutoTransporte.Vehiculo.ConfigVehicular, Carta.FiguraTransporte.AutoTransporte.Vehiculo.PesoBrutoVehicular, Carta.FiguraTransporte.AutoTransporte.Vehiculo.PlacaVM, Carta.FiguraTransporte.AutoTransporte.Vehiculo.AnioModeloVM)
|
||||
|
||||
If Carta.Mercancias.Mercancias.Max(Function(x) x.MaterialPeligroso) = "" Then 'si no hay material peligro se limpian los valores
|
||||
Carta.FiguraTransporte.AutoTransporte.NombreSeguroMedioAmbiente = ""
|
||||
Carta.FiguraTransporte.AutoTransporte.PolizaSeguroMedioAmbiente = ""
|
||||
End If
|
||||
|
||||
cfdi.CartaPorte30Seguros(Carta.FiguraTransporte.AutoTransporte.NombreSeguroResponsabilidadCivil, Carta.FiguraTransporte.AutoTransporte.PolizaSeguroResponsabilidadCivil,
|
||||
Carta.FiguraTransporte.AutoTransporte.NombreSeguroMedioAmbiente, Carta.FiguraTransporte.AutoTransporte.PolizaSeguroMedioAmbiente,
|
||||
Carta.FiguraTransporte.AutoTransporte.NombreSeguroCarga, Carta.FiguraTransporte.AutoTransporte.PolizaSeguroCarga,
|
||||
Carta.FiguraTransporte.AutoTransporte.PrimaSeguro)
|
||||
|
||||
If Carta.FiguraTransporte.AutoTransporte.Remolques IsNot Nothing AndAlso Carta.FiguraTransporte.AutoTransporte.Remolques.Count > 0 Then
|
||||
For Each concep As CFDICartaPorteRemolque In Carta.FiguraTransporte.AutoTransporte.Remolques
|
||||
cfdi.CartaPorte30Remolque(concep.SubTipoRemolque, concep.Placa)
|
||||
Next
|
||||
End If
|
||||
End If
|
||||
|
||||
If Carta.FiguraTransporte.Operadores IsNot Nothing AndAlso Carta.FiguraTransporte.Operadores.Count > 0 Then
|
||||
For Each concep As CFDICartaPorteOperador In Carta.FiguraTransporte.Operadores
|
||||
cfdi.CartaPorte30TiposFigura(concep.TipoFigura, concep.RFCFigura, concep.NumLicencia, concep.NombreFigura, concep.NumRegidTribFigura, If(concep.ResidenciaFiscalFigura <> "MEX", concep.ResidenciaFiscalFigura, ""))
|
||||
If concep.TipoFigura.Contiene("02", "03") Then ' “02”- Propietario o “03” -Arrendador
|
||||
cfdi.CartaPorte30PartesTransporte("PT01")
|
||||
cfdi.CartaPorte30PartesTransporteDomicilio(concep.Domicilio.Calle, concep.Domicilio.NumeroExterior, concep.Domicilio.NumeroInterior, concep.Domicilio.Colonia, concep.Domicilio.Localidad, concep.Domicilio.Referencia, concep.Domicilio.Municipio, concep.Domicilio.Estado, concep.Domicilio.Pais, concep.Domicilio.CP)
|
||||
End If
|
||||
Next
|
||||
End If
|
||||
End If
|
||||
End If
|
||||
End If
|
||||
|
||||
|
||||
#End Region
|
||||
|
||||
#Region "C O M P L E M E N T O D E P A G O"
|
||||
|
||||
@@ -78,18 +78,19 @@ Public Class CargaEventos : Implements IHttpHandler, IRequiresSessionState
|
||||
cevent.CveOS = dr("CveOS").ToString.ToEntero
|
||||
cevent.allDay = False
|
||||
If dr("EstatusOSGral").ToString.Contiene("Levantamiento") Then
|
||||
cevent.backgroundColor = "#006699"
|
||||
cevent.backgroundColor = "#3598dc"
|
||||
ElseIf dr("EstatusOSGral").ToString.Contiene("Surtido") Then
|
||||
cevent.backgroundColor = "#002699"
|
||||
ElseIf dr("EstatusOSGral").ToString.Contiene("Asignado") Then
|
||||
cevent.backgroundColor = "#025716"
|
||||
cevent.backgroundColor = "#8E44AD"
|
||||
ElseIf dr("EstatusOSGral").ToString.Contiene("Finalizado") Then
|
||||
cevent.backgroundColor = "#730505"
|
||||
cevent.backgroundColor = "#26C281"
|
||||
ElseIf dr("EstatusOSGral").ToString.Contiene("Facturado") Then
|
||||
cevent.backgroundColor = "#006699"
|
||||
cevent.backgroundColor = "#4B77BE"
|
||||
ElseIf dr("EstatusOSGral").ToString.Contiene("Cobrado") Then
|
||||
cevent.backgroundColor = "#007699"
|
||||
cevent.backgroundColor = "#29b4b6"
|
||||
ElseIf dr("EstatusOSGral").ToString.Contiene("Cancelado") Then
|
||||
cevent.backgroundColor = "#e43a45"
|
||||
End If
|
||||
events.Add(cevent)
|
||||
Next
|
||||
|
||||
@@ -52,7 +52,7 @@ Partial Class Bancos_DepositosCaja
|
||||
DdlCajaChica.DataSource = GlobalDTBancosCuentas(UsuarioActual.CveUsuario, CveEmpresa:=UsuarioActual.CveEmpresa).FiltraParametros(" CveTipoCuenta = 1", "", {"CveCuenta", "NumCuentaMoneda"})
|
||||
DdlCajaChica.DataBind()
|
||||
'código temporal, para claudia y toñita, monge, anadelia, alba,patricia
|
||||
If UsuarioActual.CveUsuario.Contiene(1937, 2452, 3358, 3033, 2897, 2560) Then
|
||||
If UsuarioActual.TienePermisoProceso(383) Then 'UsuarioActual.CveUsuario.Contiene(1937, 2452, 3358, 3033, 2897, 2560) Then
|
||||
DdlCajaChica.Items.Add(New ListItem("Todas", "-1"))
|
||||
DdlCuentaDeposito.Items.Add(New ListItem("Cuadre Solidaridad", "7850"))
|
||||
DdlCuentaDeposito.Items.Add(New ListItem("Cuadre Obregón", "7853"))
|
||||
@@ -312,7 +312,7 @@ Partial Class Bancos_DepositosCaja
|
||||
'End If
|
||||
|
||||
'código temporal, para claudia y toñita, monge, anadelia, alba,patricia
|
||||
If UsuarioActual.CveUsuario.Contiene(1937, 2452, 3358, 3033, 2897, 2560) Then
|
||||
If UsuarioActual.TienePermisoProceso(383) Then 'CveUsuario.Contiene(1937, 2452, 3358, 3033, 2897, 2560) Then
|
||||
FolioIE = TxtFolio.Text.ToEntero
|
||||
End If
|
||||
|
||||
|
||||
@@ -272,7 +272,8 @@
|
||||
</asp:DropDownList>
|
||||
</div>
|
||||
<div class="col-md-3" id="divDD" runat="server" visible="false">
|
||||
<asp:TextBox ID="TxtDDImporte" runat="server" MaxLength="12" CssClass="form-control input-sm" Width="80px"></asp:TextBox>
|
||||
<asp:TextBox ID="TxtDDImporte" runat="server" MaxLength="12" ClientIDMode="Static" CssClass="form-control input-sm" Width="80px" ></asp:TextBox>
|
||||
<ajax:FilteredTextBoxExtender ID="FilteredTextBoxExtender1" runat="server" TargetControlID="TxtDDImporte" FilterType="Custom, Numbers" ValidChars="+-.," />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -284,7 +285,7 @@
|
||||
<asp:UpdatePanel runat="server">
|
||||
<ContentTemplate>
|
||||
<div>
|
||||
<asp:TextBox ID="Anexo" CssClass="ADSdropzone hidden" data-maxFile="1" Text="" runat="server"></asp:TextBox>
|
||||
<asp:TextBox ID="Anexo" CssClass="ADSdropzone hidden" data-maxFile="1" Text="" runat="server" ></asp:TextBox>
|
||||
</div>
|
||||
</ContentTemplate>
|
||||
</asp:UpdatePanel>
|
||||
@@ -637,7 +638,21 @@
|
||||
txt.value = "";
|
||||
}
|
||||
|
||||
$get('TxtImporte').value = FormatoNumero(SumaValores(CveMonedaPago), 2);
|
||||
let Suma = SumaValores(CveMonedaPago);
|
||||
let TxtDDImporte;
|
||||
if ($('#TxtDDImporte').length > 0) {
|
||||
TxtDDImporte = parseFloat($('#TxtDDImporte').val().replace(/,/g, ''));
|
||||
} else {
|
||||
TxtDDImporte = 0; // Asigna un valor por defecto si el elemento no existe
|
||||
}
|
||||
|
||||
//let TxtDDImporte = parseFloat($('#TxtDDImporte').val().replace(/,/g, ''));
|
||||
|
||||
if (!isNaN(TxtDDImporte)) {
|
||||
Suma = Suma + TxtDDImporte;
|
||||
}
|
||||
|
||||
$get('TxtImporte').value = FormatoNumero(Suma, 2);
|
||||
}
|
||||
|
||||
function FnCambia(chk, txt, saldo, op, text, CveMonedaPago) {
|
||||
@@ -653,7 +668,21 @@
|
||||
txt.value = saldo;
|
||||
alert(text);
|
||||
}
|
||||
var Suma = SumaValores(CveMonedaPago);
|
||||
|
||||
let Suma = SumaValores(CveMonedaPago);
|
||||
|
||||
//let TxtDDImporte = parseFloat($('#TxtDDImporte').val().replace(/,/g, ''));
|
||||
let TxtDDImporte;
|
||||
if ($('#TxtDDImporte').length > 0) {
|
||||
TxtDDImporte = parseFloat($('#TxtDDImporte').val().replace(/,/g, ''));
|
||||
} else {
|
||||
TxtDDImporte = 0; // Asigna un valor por defecto si el elemento no existe
|
||||
}
|
||||
|
||||
if (!isNaN(TxtDDImporte) ) {
|
||||
Suma = Suma + TxtDDImporte;
|
||||
}
|
||||
|
||||
$get('TxtImporte').value = FormatoNumero(Suma, 2);
|
||||
|
||||
if ($get('TxtTotal') != null) {
|
||||
@@ -720,6 +749,28 @@
|
||||
return Importe
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function validaDeudoresDiversos(CveMoneda) {
|
||||
|
||||
$get('TxtImporte').value = FormatoNumero(SumaValores(CveMoneda), 2)
|
||||
|
||||
let TxtImporte = parseFloat($get('TxtImporte').value.replace(/,/g, ''));
|
||||
let TxtDDImporte = parseFloat($get('TxtDDImporte').value.replace(/,/g, ''));
|
||||
|
||||
|
||||
|
||||
if (isNaN(TxtImporte) || isNaN(TxtDDImporte)) {
|
||||
return;
|
||||
}
|
||||
let resultado = TxtImporte + TxtDDImporte;
|
||||
|
||||
$get('TxtImporte').value = resultado.toFixed(2);
|
||||
// $('#TxtDDImporte').val(TxtDDImporte.toFixed(2));
|
||||
|
||||
|
||||
}
|
||||
|
||||
</script>
|
||||
</asp:Content>
|
||||
|
||||
|
||||
@@ -6,6 +6,7 @@ using System.Text;
|
||||
using System.Web;
|
||||
using System.Web.UI.WebControls;
|
||||
using static Extensiones.ModExtensiones;
|
||||
using static Microsoft.EntityFrameworkCore.DbLoggerCategory;
|
||||
|
||||
public partial class Bancos_PagoAcreedor : ClsPaginas
|
||||
{
|
||||
@@ -140,6 +141,10 @@ public partial class Bancos_PagoAcreedor : ClsPaginas
|
||||
Folio = bancos.GetNextFolio(DdlCuenta.SelectedValue.ToEntero(), DdlTipoTransaccion.SelectedValue.ToEntero());
|
||||
bancos.Dispose();
|
||||
TxtFolio.Text = Folio.ToString();
|
||||
|
||||
|
||||
TxtDDImporte.Attributes.Add("onblur",$"validaDeudoresDiversos({CveMonedaCuentaPago});FormatoMoneda(this);");
|
||||
UpDatos.Update();
|
||||
}
|
||||
|
||||
protected void DdlProveedores_selectedindexchange(object sender, EventArgs e)
|
||||
@@ -345,12 +350,13 @@ public partial class Bancos_PagoAcreedor : ClsPaginas
|
||||
MsgError = "No se pudo insertar concepto de diferencia cambiaria";
|
||||
}
|
||||
|
||||
if (ImporteComision != 0 && MsgError == "")
|
||||
if (ImporteComision != 0 && MsgError == "" && DdlOtrosPagos.SelectedValue == "2" )
|
||||
{
|
||||
|
||||
ImporteComisionMN = (ImporteComision * TCPago).RoundSQL();
|
||||
int tTipoConceptoOtro = 255;
|
||||
if (DdlOtrosPagos.SelectedValue == "3") tTipoConceptoOtro = 43; //deudores diversos
|
||||
|
||||
//if (DdlOtrosPagos.SelectedValue == "3") tTipoConceptoOtro = 43; //deudores diversos
|
||||
if (!ObjMov.AddPrePolizasDetalle(CvePrePoliza, TipoMovtoComision, ImporteComision, ImporteComisionMN, tTipoConceptoOtro, Ref, Conc, CveIE: CveIE, CveProveedor: DdlProveedores.SelectedValue.ToEntero(),CveIEDevolucion: gvr.DataKey("CveIE").ToEntero(), TipoCambio: TC, TipoCambioPago: TCPago, CveSubProyecto: DdlSubProyectoPago.SelectedValue.ToEntero()))
|
||||
{
|
||||
MsgError = "No se pudo insertar concepto de pago acreedor";
|
||||
@@ -360,6 +366,39 @@ public partial class Bancos_PagoAcreedor : ClsPaginas
|
||||
}
|
||||
}
|
||||
|
||||
if (TxtDDImporte.Text.ToDecimal() != 0 && MsgError == "" && DdlOtrosPagos.SelectedValue == "3")
|
||||
{
|
||||
ImporteComision = TxtDDImporte.Text.ToDecimal();
|
||||
ImporteComisionMN = ImporteComision;
|
||||
|
||||
if (TxtDDImporte.Text.ToDecimal() < 0)
|
||||
{
|
||||
TipoMovtoComision = true;
|
||||
ImporteComision = ImporteComision * -1;
|
||||
ImporteComisionMN = ImporteComisionMN * -1;
|
||||
}
|
||||
else
|
||||
{
|
||||
TipoMovtoComision = false;
|
||||
}
|
||||
|
||||
//Decimal TC = get_GlobalTipoCambio(TxtFechaDocumento.Text.ToDate()).ToDecimal();
|
||||
//int tCveMoneda = get_GlobalDTBancosCuentas(-1, DdlCuenta.SelectedValue.ToEntero()).FiltroPrimeroValor("CveMoneda").ToEntero();
|
||||
//CveMonedaPago
|
||||
|
||||
ImporteComision = ImporteComision.RoundSQL();
|
||||
ImporteComisionMN = (ImporteComision * TCPago).RoundSQL() ;
|
||||
|
||||
ImporteComisionMN = (ImporteComision * TCPago).RoundSQL();
|
||||
|
||||
|
||||
int tTipoConceptoOtro = 43; //deudores diversos
|
||||
if (!ObjMov.AddPrePolizasDetalle(CvePrePoliza, TipoMovtoComision, ImporteComision, ImporteComisionMN, tTipoConceptoOtro, Ref, Conc, CveIE: CveIE, CveProveedor: DdlProveedores.SelectedValue.ToEntero(), TipoCambio: TCPago, TipoCambioPago: TCPago, CveSubProyecto: DdlSubProyectoPago.SelectedValue.ToEntero()))
|
||||
{
|
||||
MsgError = "No se pudo insertar concepto de pago acreedor";
|
||||
}
|
||||
}
|
||||
|
||||
if (CveMonedaPago != 1)
|
||||
{
|
||||
ImporteComplementaria = (ImporteBanco * TCPago - ImporteBanco).RoundSQL();
|
||||
@@ -767,7 +806,7 @@ public partial class Bancos_PagoAcreedor : ClsPaginas
|
||||
divDD.Visible = false;
|
||||
if (DdlOtrosPagos.SelectedValue == "2")
|
||||
{
|
||||
TxtOtrosImportes.Visible = true;
|
||||
TxtOtrosImportes.Visible = true;
|
||||
TxtTotal.Visible = true;
|
||||
GvMovAcreedor.Columns[8].Visible = true;
|
||||
TxtOtrosImportes.Text = "";
|
||||
|
||||
BIN
Bin/GoCfdi.dll
BIN
Bin/GoCfdi.dll
Binary file not shown.
@@ -8557,6 +8557,8 @@ Partial Class Compras_Compras
|
||||
|
||||
Protected Sub BtnActualizar_Click(sender As Object, e As EventArgs) Handles BtnActualizar.Click
|
||||
|
||||
Dim SeActualizoDetalle As Boolean = False
|
||||
|
||||
Dim CveSubProyectoPrincipal As Integer = AsignarSubProyectoPrincipal()
|
||||
If Not CveSubProyectoPrincipal > 0 Then
|
||||
Alert("Falta asignar Proyecto a la compra", TipoMensaje.MsgAdvertencia)
|
||||
@@ -8654,7 +8656,7 @@ Partial Class Compras_Compras
|
||||
CveTipoCompra:=DdlTipoCompra.SelectedValue.ToEntero, NoDeducible:=tNoDeducible, CveRetIVAConcepto:=TmpCveRetIVAConcepto, CveRetISRConcepto:=TmpCveRetISRConcepto, CveSubProyecto:=CveSubProyectoPrincipal, CveFolioGarantia:=DdlFolioGarantia.SelectedValue.ToEntero) Then
|
||||
|
||||
If Not ComparaDatatables() Then
|
||||
|
||||
SeActualizoDetalle = True
|
||||
'Regeneramos el concepto 6 de PrePolizas
|
||||
'If UsuarioActual.Empresa.Funcionalidad(207) = "1" Then
|
||||
' If Not RegenerarPrePoliza(ObjContabilidad, ObjContaAC, 6, False, MultiplicadorNC) Then
|
||||
@@ -9010,7 +9012,7 @@ Partial Class Compras_Compras
|
||||
End If
|
||||
End If
|
||||
|
||||
If Not ObjCompra.AddCompraDetalle(CveCompra, Row("CveUM").ToString.ToEntero, Row("CvePS").ToString.ToEntero, Row("CveSubProyecto").ToString.ToEntero, -1, CveAF,
|
||||
If ObjCompra.AddCompraDetalle(CveCompra, Row("CveUM").ToString.ToEntero, Row("CvePS").ToString.ToEntero, Row("CveSubProyecto").ToString.ToEntero, -1, CveAF,
|
||||
Row("Cantidad").ToString.ToDecimal, Row("PU").ToString.ToDecimal, Row("IVA").ToString.ToDecimal, Row("Total").ToString.ToDecimal, Row("Descuento").ToString.ToDecimal,
|
||||
Row("Obs").ToString, Row("CveOrdenCompraDetalle").ToString.ToEntero, TipoRecepcion, Row("CveContrato").ToString.ToEntero, Row("CvePresupuestoEgreso").ToString.ToEntero,
|
||||
AplicaCostoIndirecto:=Row("AplicaCostoIndirecto").ToString.ToEntero, EstatusAlmacen:=Row("EntregaDirecta").ToString.ToEntero, CvePersonal:=CvePersonal,
|
||||
@@ -9019,7 +9021,17 @@ Partial Class Compras_Compras
|
||||
IVAPorcentaje:=Row("IVAPorcentaje").ToString.ToDecimal, RetIVAPorcentaje:=Row("RetIVAPorcentaje").ToString.ToDecimal, RetISRPorcentaje:=Row("RetISRPorcentaje").ToString.ToDecimal,
|
||||
IEPSPSPorcentaje:=Row("IEPSPSPorcentaje").ToString.ToDecimal, IEPSPSIVAPorcentaje:=Row("IEPSPSIVAPorcentaje").ToString.ToDecimal, NoDeducible:=If((Row("NoDeducible").ToString().ToUpper().Contiene("TRUE", "1")) AndAlso EsNoDeducible, True, False),
|
||||
CveContratoDetalle:=Row("CveContratoDetalle").ToString.ToEntero, CveCultivoCuadroDetalle:=Row("CveCultivoCuadroDetalle").ToString.ToEntero) Then
|
||||
Dim objGeneral As New ClsGenerales(ObjCompra.IniciaTransacSQL)
|
||||
|
||||
Dim NuevoDetalle As String = $"Cantidad: {Row("Cantidad").ToString} Producto: {Row("CodigoPS").ToString}, PU: {Row("PU").ToString.ToDecimal}, Total: {Row("Total").ToString.ToDecimal}"
|
||||
|
||||
If Not objGeneral.AddHistorialBitacora(441, -1, -1, -1, -1, -1, CveCompra, -1, NuevoDetalle, "", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, 0, "", "", "") Then
|
||||
Retorno = False
|
||||
Exit For
|
||||
End If
|
||||
|
||||
|
||||
Else
|
||||
Retorno = False
|
||||
Exit For
|
||||
End If
|
||||
@@ -9143,6 +9155,7 @@ Partial Class Compras_Compras
|
||||
ObjCompra.RollBack()
|
||||
If ObjContaAC IsNot Nothing Then ObjContaAC.RollBack()
|
||||
|
||||
SeActualizoDetalle = False
|
||||
Finally
|
||||
If Retorno Then
|
||||
If ObjContabilidad.MensajePolizaDescuadre IsNot Nothing AndAlso ObjContabilidad.MensajePolizaDescuadre.ToString <> "" Then
|
||||
@@ -9161,6 +9174,7 @@ Partial Class Compras_Compras
|
||||
ObjCompra.RollBack()
|
||||
If ObjContaAC IsNot Nothing Then ObjContaAC.RollBack()
|
||||
Alert("Ocurrió un error al actualizar la compra, por favor vuelva a intentar.", TipoMensaje.MsgAdvertencia)
|
||||
SeActualizoDetalle = False
|
||||
End If
|
||||
|
||||
If ObjContaAC IsNot Nothing Then ObjContaAC.Dispose()
|
||||
@@ -9176,6 +9190,81 @@ Partial Class Compras_Compras
|
||||
|
||||
CargaGvBitacora()
|
||||
UpBitacora.Update()
|
||||
|
||||
|
||||
If SeActualizoDetalle Then
|
||||
MandaCorreoActualizacionDetalle(CveCompra)
|
||||
End If
|
||||
|
||||
End Sub
|
||||
|
||||
Private Sub MandaCorreoActualizacionDetalle(CveCompra As Integer)
|
||||
|
||||
If UsuarioActual.CveRol <> 1 Then
|
||||
Exit Sub
|
||||
End If
|
||||
|
||||
Dim DTCorreos As New DataTable
|
||||
Dim DTMovimientos As New DataTable
|
||||
Dim strBody As New StringBuilder
|
||||
Dim Asunto, Para, ArrayCC, Body As String
|
||||
Para = GlobalDTUsuarios(UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa).FiltroPrimeroValor("Correo")
|
||||
|
||||
If Para.ToString = "" AndAlso UsuarioActual.CveRol = 1 Then
|
||||
Para = Para & ";oscar.irigoyen@adssistemas.mx;rene.molina@adssistemas.mx"
|
||||
End If
|
||||
|
||||
Dim uri As Uri = HttpContext.Current.Request.Url
|
||||
Dim URlCompleta As String = uri.AbsoluteUri
|
||||
|
||||
Dim SerieFolioCompra As String = $"{TxtSerie.Text}{If(TxtSerie.Text.Trim.Length > 0, "-", "")}{TxtFolio.Text.Trim}"
|
||||
|
||||
strBody.Append("<html xmlns=""http: //www.w3.org/1999/xhtml""> ")
|
||||
strBody.Append("<head> ")
|
||||
strBody.Append(" <style type=""text/css""> ")
|
||||
strBody.Append(" * {")
|
||||
strBody.Append(" font-family: Verdana; ")
|
||||
strBody.Append(" }")
|
||||
strBody.Append(" body { ")
|
||||
strBody.Append(" padding: 0px;")
|
||||
strBody.Append(" margin: 0px; ")
|
||||
strBody.Append(" } ")
|
||||
strBody.Append(" p {")
|
||||
strBody.Append(" font-size: 14px;")
|
||||
strBody.Append(" }")
|
||||
strBody.Append(" /*ESTILOS ESTANDAR DE TABLA*/")
|
||||
strBody.Append(" table {")
|
||||
strBody.Append(" font-size: 12px;")
|
||||
strBody.Append(" }")
|
||||
strBody.Append(" table tr{")
|
||||
strBody.Append(" height:20px;")
|
||||
strBody.Append(" }")
|
||||
strBody.Append(" table .thead{")
|
||||
strBody.Append(" background-color:#dddddd;")
|
||||
strBody.Append(" text-align:center;")
|
||||
strBody.Append(" vertical-align:middle;")
|
||||
strBody.Append(" }")
|
||||
strBody.Append(" table .tbody{")
|
||||
strBody.Append(" background-color:#F7F6F3; ")
|
||||
strBody.Append(" }")
|
||||
strBody.Append(" </style> ")
|
||||
strBody.Append("</head> ")
|
||||
strBody.Append("<body>")
|
||||
strBody.Append($"<p> Se realizo una actualización en los detalles de la compra <a href='{URlCompleta}' >{SerieFolioCompra}</a> del proveedor {HplProveedor.Text}</p>")
|
||||
strBody.Append("</body>")
|
||||
|
||||
strBody.Append("</html>")
|
||||
|
||||
|
||||
'' ENVIO DEL CORREO
|
||||
Asunto = $"Actualizacion de Compra: {SerieFolioCompra} Proveedor: {HplProveedor.Text}"
|
||||
ArrayCC = ""
|
||||
Body = strBody.ToString
|
||||
Dim Mail As New ClsSisMail()
|
||||
Mail.SendMail(ClsPaginas.EmpresaNotificaciones, Para, Asunto, Body, ArrayCC)
|
||||
|
||||
|
||||
|
||||
End Sub
|
||||
|
||||
Private Function ComparaDatatables() As Boolean
|
||||
|
||||
@@ -2714,6 +2714,7 @@ Partial Class PopUpVerFactura
|
||||
Dim NombreEntrego As String = ObjInventarios.DtResultados.FiltroPrimeroValor("Entrego")
|
||||
Dim CveAlmacen As Integer = ObjInventarios.CveAlmacen
|
||||
Dim Recibio As String = ObjInventarios.Recibio
|
||||
Dim Guia As String = ObjInventarios.Guia
|
||||
Dim PuestoRecibio As String = ObjInventarios.PuestoRecibio
|
||||
Dim PuestoEnrego As String = ObjInventarios.PuestoEntrego
|
||||
Dim ResponsableCarga As String = ObjInventarios.ResponsableCarga
|
||||
@@ -2912,7 +2913,7 @@ Partial Class PopUpVerFactura
|
||||
PuestoEnrego, RazonSocial, ResponsableCarga, ResponsableRecibio, NombreCliente,
|
||||
CantidadProductos:=CantidadProductos, CantidadUsados:=CantidadUsados, CveTipoAlmacen:=CveTipoAlmacen, NombreEntrego:=NombreEntrego,
|
||||
CveConceptoMovRelacionado:=CveConceptoMovtoRelacionado, FolioRelacionado:=FolioRelacionado, UsuarioRegistro:=UsuarioCapturo,
|
||||
Ruta:=Ruta, Supervisor:=Supervisor, Consola:=Consola)
|
||||
Ruta:=Ruta, Supervisor:=Supervisor, Guia:=Guia, Consola:=Consola)
|
||||
|
||||
End Sub
|
||||
Private Sub PUanacExtr(CveMoneda As Integer) 'preciounitario a moneda nacional o extranjera
|
||||
@@ -2931,7 +2932,7 @@ Partial Class PopUpVerFactura
|
||||
EstadoDestino As String, PaisDestino As String, CPDestino As String, FechaMovimiento As Date, NombreCapturo As String, PuestoRecibio As String, PuestoEntrego As String,
|
||||
RazonSocial As String, ResponsableCarga As String, ResponsableRecibio As String, NombreCliente As String, Optional CantidadProductos As Decimal = 0, Optional CantidadUsados As Decimal = 0,
|
||||
Optional CveTipoAlmacen As Integer = -1, Optional NombreEntrego As String = "", Optional CveConceptoMovRelacionado As Integer = -1, Optional FolioRelacionado As String = "", Optional UsuarioRegistro As String = "",
|
||||
Optional Ruta As String = Nothing, Optional Supervisor As String = Nothing, Optional Consola As String = "-1")
|
||||
Optional Ruta As String = Nothing, Optional Supervisor As String = Nothing, Optional Guia As String = "", Optional Consola As String = "-1")
|
||||
|
||||
|
||||
Select Case CveConcepto
|
||||
@@ -3617,22 +3618,20 @@ Partial Class PopUpVerFactura
|
||||
params.Add(New ReportParameter("Accion", "RECIBE")) 'Antes Trasladó
|
||||
params.Add(New ReportParameter("Observaciones", Observaciones))
|
||||
|
||||
|
||||
Dim DTCliente As New DataTable
|
||||
Dim SBDireccionO As New StringBuilder()
|
||||
Dim SBDireccionD As New StringBuilder()
|
||||
Dim CveCliente As Integer = 0
|
||||
Dim CveDireccionEnvio As Integer = 0
|
||||
Dim ClienteNombre As String = "", EnvioContacto As String = "", EnvioDireccion As String = "", EnvioColonia As String = "", EnvioCiudad As String = "", EnvioEstado As String = "", ClientePais As String = "", EnvioCP As String = "", Contrato As String = "",
|
||||
Paqueteria As String = "", NumContrato As String = "", Guia As String = "", Documentacion As String = ""
|
||||
Paqueteria As String = "", NumContrato As String = "", Documentacion As String = ""
|
||||
|
||||
Dim CveContrato As Integer = 0
|
||||
If DtMovimientos IsNot Nothing AndAlso DtMovimientos.Rows.Count > 0 Then
|
||||
CveContrato = DtMovimientos.FiltroPrimeroValor("CveContrato").ToEntero
|
||||
End If
|
||||
|
||||
|
||||
If UsuarioActual.Empresa.Funcionalidad(578).ToEntero = 1 Then
|
||||
If UsuarioActual.Empresa.Funcionalidad(578) = "1" Then
|
||||
|
||||
CveCliente = DtMovimientos.FiltroPrimeroValor("CveCliente").ToEntero
|
||||
DTCliente = GlobalDTCliente(UsuarioActual.CveEmpresa).FiltraParametros($"CveCliente = {CveCliente}")
|
||||
@@ -3644,12 +3643,11 @@ Partial Class PopUpVerFactura
|
||||
If Consola <> "-1" And Consola.Trim.Length > 0 Then
|
||||
RutaFormato = "{0}Formatos\Consola.rdlc"
|
||||
params.Add(New ReportParameter("Consola", Consola))
|
||||
params.Add(New ReportParameter("SerieConsola", Guia))
|
||||
params.Add(New ReportParameter("SeriePedal", Recibio))
|
||||
End If
|
||||
|
||||
|
||||
|
||||
Dim CveVentaConsulta As Integer = DtMovimientos.FiltroPrimeroValor("CveVenta").ToEntero
|
||||
|
||||
params.Add(New ReportParameter("Documentacion", DTCliente.FiltroPrimeroValor("Documentacion")))
|
||||
|
||||
Dim ObjVentas As New ClsVentas()
|
||||
@@ -3670,18 +3668,9 @@ Partial Class PopUpVerFactura
|
||||
params.Add(New ReportParameter("ClienteMunicipio", dtVentas.Rows(0)("SucClienteCiudad").ToString))
|
||||
params.Add(New ReportParameter("ClienteCP", dtVentas.Rows(0)("CPCliente").ToString))
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
End If
|
||||
ObjVentas.Dispose()
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
End If
|
||||
|
||||
If CveContrato > 0 Then
|
||||
|
||||
@@ -1047,7 +1047,7 @@
|
||||
<div class="modal-footer">
|
||||
<asp:UpdatePanel runat="server">
|
||||
<ContentTemplate>
|
||||
<asp:Button ID="BtnGuardarFaturas" runat="server" ClientIDMode="Static" Text="Aceptar" CssClass="btn btn-primary" />
|
||||
<asp:Button ID="BtnSubirFacturas" runat="server" ClientIDMode="Static" Text="Aceptar" CssClass="btn btn-primary" />
|
||||
<button type="button" class="btn btn-danger" data-dismiss="modal">Cancelar</button>
|
||||
</ContentTemplate>
|
||||
</asp:UpdatePanel>
|
||||
|
||||
@@ -18,6 +18,7 @@ Imports Extensiones
|
||||
Imports Microsoft.Reporting.WebForms
|
||||
Imports Newtonsoft.Json.Linq
|
||||
Imports ClsPaginas
|
||||
Imports ADS.eFacturas
|
||||
|
||||
|
||||
|
||||
@@ -778,25 +779,24 @@ Partial Class Compras_eFacturas
|
||||
MostrarSolcitudesSAT()
|
||||
|
||||
If UsuarioActual.CveRol = 1 Then
|
||||
GVSolicitudesPendientes.Columns(8).Visible = True
|
||||
End If
|
||||
GVSolicitudesPendientes.Columns(8).Visible = True
|
||||
End If
|
||||
|
||||
'CARGA REGISTRO DE FACTURA
|
||||
|
||||
CargaClasificacionesComprobaciones()
|
||||
CargaClasificaciones()
|
||||
CargaPS(-1)
|
||||
CargaPersoanlCajaChica()
|
||||
CargaPersonalViaticos()
|
||||
CargaDdlRetIVA()
|
||||
CargaDdlRetISR()
|
||||
'CargaClasificacionesComprobaciones()
|
||||
'CargaClasificaciones()
|
||||
'CargaPS(-1)
|
||||
'CargaPersoanlCajaChica()
|
||||
'CargaPersonalViaticos()
|
||||
'CargaDdlRetIVA()
|
||||
'CargaDdlRetISR()
|
||||
|
||||
Dim LblSubProyectoTemp As New Label
|
||||
CargarCentrosDeCosto(Nothing, DdlSubProyecto, Nothing, LblSubProyectoTemp, "Seleccione")
|
||||
LblSubProyecto.InnerText = $"{LblSubProyectoTemp.Text}:"
|
||||
|
||||
End If
|
||||
removeasincevent()
|
||||
CargarCentrosDeCosto(Nothing, DdlSubProyecto, Nothing, LblSubProyectoTemp, "Seleccione")
|
||||
LblSubProyecto.InnerText = $"{LblSubProyectoTemp.Text}:"
|
||||
End If
|
||||
removeasincevent()
|
||||
End Sub
|
||||
|
||||
Protected Sub BtnConsultar_Click(sender As Object, e As System.EventArgs) Handles BtnConsultar.Click
|
||||
@@ -1489,14 +1489,12 @@ Partial Class Compras_eFacturas
|
||||
Private Sub LnkSubirFacturas_Click(sender As Object, e As EventArgs) Handles LnkSubirFacturas.Click
|
||||
RegistraScript(String.Format("$('#{0}').modal();", "ModalFacturas"))
|
||||
End Sub
|
||||
Private Sub BtnGuardarFaturas_Click(sender As Object, e As EventArgs) Handles BtnGuardarFaturas.Click
|
||||
|
||||
If UsuarioActual.Empresa.SendMail.Trim.Length = 0 Then
|
||||
Alert("La Empresa no tiene configurado el envió de correo.", TipoMensaje.MsgAdvertencia)
|
||||
Exit Sub
|
||||
End If
|
||||
|
||||
Private Sub BtnSubirFacturas_Click(sender As Object, e As EventArgs) Handles BtnSubirFacturas.Click
|
||||
|
||||
'If UsuarioActual.Empresa.SendMail.Trim.Length = 0 Then
|
||||
' Alert("La Empresa no tiene configurado el envió de correo.", TipoMensaje.MsgAdvertencia)
|
||||
' Exit Sub
|
||||
'End If
|
||||
|
||||
Dim sw As New Diagnostics.Stopwatch
|
||||
Dim swmili As Long = 0
|
||||
@@ -1512,8 +1510,6 @@ Partial Class Compras_eFacturas
|
||||
Dim ListPDF As New List(Of String)
|
||||
Dim ListDirectorios As New List(Of String)
|
||||
|
||||
|
||||
|
||||
For Each fileItem As Archivo In filesgral
|
||||
FileExtension = IO.Path.GetExtension(String.Format("{0}Temp\{1}", AppDomain.CurrentDomain.BaseDirectory, fileItem.filename)).Replace(".", "")
|
||||
filemove = fileItem.filename
|
||||
@@ -1546,33 +1542,15 @@ Partial Class Compras_eFacturas
|
||||
sOnlyFilename = System.IO.Path.GetFileName(filePath)
|
||||
|
||||
If ArchivoExtension.ToUpper = "RAR" Or ArchivoExtension.ToUpper = "ZIP" Then
|
||||
'ListaComprimidos.Add(filePath)
|
||||
''CREO DIRECTORIO ALEATORIO
|
||||
'Dim Aleatorio As New Random
|
||||
'Dim TempDirectorio As String = String.Format("{0}{1}\{2}{3}", UsuarioActual.Empresa.Ruta, "Temp\Facturas", NowADS().Ticks, Aleatorio.Next(100, 999))
|
||||
'Directory.CreateDirectory(TempDirectorio)
|
||||
'ListaDirectoriosTemporales.Add(TempDirectorio)
|
||||
''AGREGA DIRECTORIO A LA LISTA
|
||||
'ListDirectorios.Add(TempDirectorio)
|
||||
''DESCOMPRIME RAR
|
||||
'DescomprimeFacturas(filePath, TempDirectorio)
|
||||
''AGREGA XML A LA LISTA
|
||||
'ListXML.AddRange(Directory.GetFiles(TempDirectorio))
|
||||
|
||||
ListXML.Add(filePath)
|
||||
|
||||
End If
|
||||
|
||||
Next
|
||||
|
||||
Dim Arreglo As New ArrayList()
|
||||
' Dim Archivos As String() = Directory.GetFiles(String.Format("{0}Empresas\{1}\Temp", ModExtensiones.DirectorioBaseEmpresas, UsuarioActual.CveEmpresa))
|
||||
'Dim NombreArchivo As String
|
||||
Dim Bandera As Boolean = True
|
||||
Dim Retorno As String = ""
|
||||
Dim ListaArchivosMail As New List(Of ClsSisMail.ArchivoMail)
|
||||
|
||||
|
||||
sw.Stop()
|
||||
swTiempo.AppendFormat("ReadFiles: ({0}) {1} ", sw.ElapsedMilliseconds - swmili, sw.ElapsedMilliseconds)
|
||||
swmili = sw.ElapsedMilliseconds
|
||||
@@ -1584,12 +1562,14 @@ Partial Class Compras_eFacturas
|
||||
For Each filePath As String In ListXML
|
||||
|
||||
If File.Exists(filePath) Then
|
||||
Dim ArchivoAdjunto As New ClsSisMail.ArchivoMail
|
||||
ArchivoAdjunto.ArchivoBinario = File.ReadAllBytes(filePath)
|
||||
ArchivoAdjunto.Ruta = filePath
|
||||
ArchivoAdjunto.NombreArchivo = New FileInfo(filePath).Name
|
||||
Dim a As New ComprobanteFactura
|
||||
Dim FF As Factura = a.CargaComprobanteXML(File.ReadAllText(filePath))
|
||||
'Dim ArchivoAdjunto As New ClsSisMail.ArchivoMail
|
||||
'ArchivoAdjunto.ArchivoBinario = File.ReadAllBytes(filePath)
|
||||
'ArchivoAdjunto.Ruta = filePath
|
||||
'ArchivoAdjunto.NombreArchivo = New FileInfo(filePath).Name
|
||||
|
||||
ListaArchivosMail.Add(ArchivoAdjunto)
|
||||
'ListaArchivosMail.Add(ArchivoAdjunto)
|
||||
|
||||
End If
|
||||
|
||||
@@ -7066,6 +7046,532 @@ End Class
|
||||
|
||||
|
||||
|
||||
Namespace ADS.eFacturas
|
||||
Public Class Factura
|
||||
Public Property CveEmpresa As Integer
|
||||
Public Property Version As String
|
||||
Public Property Serie As String
|
||||
Public Property Folio As String
|
||||
Public Property Fecha As Date
|
||||
Public Property SubTotal As Decimal
|
||||
Public Property Total As Decimal
|
||||
Public Property Moneda As String
|
||||
Public Property CveMoneda As Integer
|
||||
Public Property TipoComprobante As String
|
||||
Public Property Descuento As Decimal
|
||||
Public Property TipoCambio As Decimal
|
||||
Public Property MetododePago As String
|
||||
Public Property EmisorRFC As String
|
||||
Public Property EmisorNombre As String
|
||||
Public Property EmisorRegimenFiscal As String
|
||||
Public Property ReceptorRFC As String
|
||||
Public Property ReceptorNombre As String
|
||||
Public Property ReceptorUsoCFDI As String
|
||||
Public Property TotalRetenciones As Decimal
|
||||
Public Property SumaTotalRetenciones As Decimal
|
||||
Public Property TotalTraslados As Decimal
|
||||
Public Property SumaTotalTraslados As Decimal
|
||||
Public Property TrasladoIVA As Decimal
|
||||
Public Property TrasladoIEPS As Decimal
|
||||
Public Property TrasladoISR As Decimal
|
||||
Public Property RetencionIVA As Decimal
|
||||
Public Property RetencionISR As Decimal
|
||||
Public Property sUPPrefijo As String
|
||||
Public Property UUID As String
|
||||
Public Property Validada As Integer
|
||||
Public Property ArchivoXML As String
|
||||
Public Property ArchivoPDF As String
|
||||
Public Property Pagos As List(Of Pago)
|
||||
End Class
|
||||
|
||||
Public Class Pago
|
||||
Public Property FechaPago As DateTime
|
||||
Public Property FormaDePagoP As String
|
||||
Public Property MonedaP As String
|
||||
Public Property Monto As Decimal
|
||||
Public Property Documentos As List(Of DoctoRelacionado)
|
||||
End Class
|
||||
|
||||
Public Class DoctoRelacionado
|
||||
Public Property Serie As String
|
||||
Public Property Folio As String
|
||||
Public Property ImportePago As Decimal
|
||||
Public Property ImpSaldoAnt As Decimal
|
||||
Public Property ImpSaldoInsoluto As Decimal
|
||||
Public Property idDocumento As String
|
||||
Public Property MonedaDR As String
|
||||
Public Property MetodoDePagoDR As String
|
||||
Public Property NumParcialidad As String
|
||||
End Class
|
||||
|
||||
Public Class ComprobanteFactura
|
||||
Public Property Pagos As List(Of Pago)
|
||||
Public Property XMLNodosPagos As String
|
||||
Public Property XMLNodosPagosCount As Integer
|
||||
Private Function CargaFactVersion33(CveEmpresa As Integer, ByRef node As XmlNode, ByRef nodo As XmlNode, ByRef XMLDoc As XmlDocument, ByVal Prefijo As String, ByRef namespaces As XmlNamespaceManager, ByVal VersionCFDI As String) As Factura
|
||||
Dim Fact = New Factura()
|
||||
Fact.Version = VersionCFDI
|
||||
Fact.CveEmpresa = CveEmpresa
|
||||
Fact.Serie = CaratecteresvalidosFolio(ValorXML(nodo, "serie"))
|
||||
If Not String.IsNullOrEmpty(Fact.Serie) Then Fact.Serie = Fact.Serie
|
||||
Fact.Folio = ValorXML(nodo, "folio").TrimStart("0"c)
|
||||
Fact.Fecha = ValorXML(nodo, "fecha").ToDateTime
|
||||
Fact.SubTotal = ValorXML(nodo, "subTotal").Replace("..", ".").ToDecimal
|
||||
Fact.Total = ValorXML(nodo, "total").ToDecimal
|
||||
Fact.Moneda = ValorXML(nodo, "Moneda")
|
||||
Fact.MetododePago = ValorXML(nodo, "MetododePago")
|
||||
Fact.TipoComprobante = ValorXML(nodo, "tipoDeComprobante")
|
||||
Fact.TipoCambio = ValorXML(nodo, "TipoCambio", "1.0").ToDecimal
|
||||
If Fact.TipoCambio < 1 Then Fact.TipoCambio = 1
|
||||
|
||||
If Fact.TipoComprobante = "P" Then
|
||||
Dim PagoPrefix As String = ""
|
||||
|
||||
If VersionCFDI = "3.3" Then
|
||||
PagoPrefix = "pago10"
|
||||
namespaces.AddNamespace("pago10", "http://www.sat.gob.mx/Pagos")
|
||||
ElseIf VersionCFDI = "4.0" Then
|
||||
PagoPrefix = "pago20"
|
||||
namespaces.AddNamespace("pago20", "http://www.sat.gob.mx/Pagos20")
|
||||
End If
|
||||
|
||||
Dim NodoComplementos As XmlNode = XMLDoc.SelectSingleNode(String.Format("//{0}:Complemento", Prefijo), namespaces)
|
||||
Dim nodePagos As XmlNode = NodoComplementos.SelectSingleNode($"//{PagoPrefix}:Pagos", namespaces)
|
||||
|
||||
For Each nPago As XmlNode In nodePagos.ChildNodes
|
||||
Fact.Total = ValorXML(nPago, "Monto").ToDecimal
|
||||
If VersionCFDI = "4.0" And nPago.LocalName.ToUpper() = "TOTALES" Then
|
||||
Continue For
|
||||
Else
|
||||
Exit For
|
||||
End If
|
||||
Next
|
||||
End If
|
||||
|
||||
Fact.sUPPrefijo = Prefijo
|
||||
node = XMLDoc.SelectSingleNode(String.Format("//{0}:Emisor", Prefijo), namespaces)
|
||||
|
||||
If node IsNot Nothing AndAlso node.Attributes.Count > 0 Then
|
||||
Fact.EmisorRFC = ValorXML(node, "RFC").Trim()
|
||||
Fact.EmisorNombre = ValorXML(node, "nombre")
|
||||
End If
|
||||
|
||||
node = XMLDoc.SelectSingleNode(String.Format("//{0}:Receptor", Prefijo), namespaces)
|
||||
|
||||
If node IsNot Nothing Then
|
||||
Fact.ReceptorRFC = ValorXML(node, "RFC").Trim()
|
||||
End If
|
||||
|
||||
If XMLDoc.HasChildNodes Then
|
||||
node = XMLDoc.ChildNodes(0).ChildNodes.Cast(Of XmlNode)().Where(Function(n, b) n.Name.Equals(String.Format("{0}:Impuestos", Prefijo), StringComparison.OrdinalIgnoreCase)).FirstOrDefault()
|
||||
|
||||
If XMLDoc.ChildNodes.Count > 1 Then
|
||||
node = XMLDoc.ChildNodes(1).ChildNodes.Cast(Of XmlNode)().Where(Function(n, b) n.Name.Equals(String.Format("{0}:Impuestos", Prefijo), StringComparison.OrdinalIgnoreCase)).FirstOrDefault()
|
||||
End If
|
||||
End If
|
||||
|
||||
If node IsNot Nothing AndAlso node.ChildNodes.Count > 0 Then
|
||||
|
||||
Try
|
||||
Dim nodeRetenciones = node.ChildNodes.Cast(Of XmlNode)().Where(Function(n, b) n.Name.Equals(String.Format("{0}:Retenciones", Prefijo), StringComparison.OrdinalIgnoreCase))
|
||||
Fact.TotalRetenciones = ValorXML(node, "totalImpuestosRetenidos", "0").ToDecimal
|
||||
|
||||
Try
|
||||
Dim retenciones = nodeRetenciones.FirstOrDefault().ChildNodes
|
||||
|
||||
For Each retencion As XmlNode In retenciones
|
||||
Dim TipoImpuesto As String = ValorXML(retencion, "impuesto")
|
||||
Dim importe As Decimal = ValorXML(retencion, "importe").ToDecimal
|
||||
|
||||
If TipoImpuesto = "002" Then
|
||||
Fact.RetencionIVA += importe
|
||||
End If
|
||||
|
||||
If TipoImpuesto = "001" Then
|
||||
Fact.RetencionISR += importe
|
||||
End If
|
||||
Next
|
||||
|
||||
Catch ex As Exception
|
||||
End Try
|
||||
|
||||
Fact.SumaTotalRetenciones += Fact.RetencionIVA
|
||||
Fact.SumaTotalRetenciones += Fact.RetencionISR
|
||||
Fact.TotalTraslados = ValorXML(node, "totalImpuestosTrasladados", "0").ToDecimal
|
||||
Dim nodeTraslados = node.ChildNodes.Cast(Of XmlNode)().Where(Function(n, b) n.Name.Equals(String.Format("{0}:Traslados", Prefijo), StringComparison.OrdinalIgnoreCase))
|
||||
Dim traslados = nodeTraslados.FirstOrDefault().ChildNodes
|
||||
|
||||
For Each traslado As XmlNode In traslados
|
||||
Dim TipoImpuesto As String = ValorXML(traslado, "impuesto")
|
||||
Dim importe As Decimal = ValorXML(traslado, "importe").ToDecimal()
|
||||
|
||||
If TipoImpuesto = "003" Then
|
||||
Fact.TrasladoIEPS += importe
|
||||
End If
|
||||
|
||||
If TipoImpuesto = "002" Then
|
||||
Fact.TrasladoIVA += importe
|
||||
End If
|
||||
|
||||
If TipoImpuesto = "001" Then
|
||||
Fact.TrasladoISR += importe
|
||||
End If
|
||||
Next
|
||||
|
||||
Fact.SumaTotalTraslados += Fact.TrasladoIVA + Fact.TrasladoIEPS
|
||||
Catch ex As Exception
|
||||
ex.ToString().GuardaLog()
|
||||
End Try
|
||||
End If
|
||||
|
||||
Dim nodeComp As XmlNode = XMLDoc.SelectSingleNode(String.Format("//{0}:Complemento", Prefijo), namespaces)
|
||||
|
||||
If nodeComp IsNot Nothing AndAlso nodeComp.ChildNodes.Count > 0 Then
|
||||
Dim nodeTFD As XmlNode = nodeComp.SelectSingleNode(String.Format("//{0}:TimbreFiscalDigital", "tfd"), namespaces)
|
||||
Fact.UUID = ValorXML(nodeTFD, "UUID", "")
|
||||
Dim nodeRF As XmlNode = nodeComp.SelectSingleNode(String.Format("//{0}:CFDIRegistroFiscal ", "registrofiscal"), namespaces)
|
||||
|
||||
If nodeRF IsNot Nothing Then
|
||||
Fact.Folio = ValorXML(nodeRF, "folio").TrimStart("0"c)
|
||||
End If
|
||||
Else
|
||||
Fact.UUID = ""
|
||||
|
||||
If String.IsNullOrEmpty(Fact.UUID) AndAlso Fact.sUPPrefijo.ToLower() = "cfdi" Then
|
||||
'Mensajes.AppendFormat("{0}|{1}|{2}|{3}|{4}|{5}{6}&", ValorXML(nodo, "serie"), ValorXML(nodo, "folio"), ValorXML(nodo, "fecha").ToDate().ToShortDateString(), Fact.EmisorNombre, ValorXML(nodo, "total").ToDouble().FormatoNumero(), "Factura no timbrada correctamente.", "")
|
||||
'CargaMensaje(ValorXML(nodo, "serie"), ValorXML(nodo, "folio"), ValorXML(nodo, "fecha").ToDate(), Fact.EmisorNombre, ValorXML(nodo, "total").ToDouble(), "Factura no timbrada correctamente.", CorreoActual, DateTime.Now, _EmiRFC, 0)
|
||||
End If
|
||||
|
||||
Fact = Nothing
|
||||
End If
|
||||
|
||||
If Fact.TipoComprobante = "P" Then
|
||||
CargaPagos(XMLDoc)
|
||||
End If
|
||||
|
||||
Return Fact
|
||||
End Function
|
||||
|
||||
Private Sub CargaPagos(ByVal XMLDoc As XmlDocument)
|
||||
Dim nodo = XMLDoc.DocumentElement
|
||||
Dim Prefijo As String = If(String.IsNullOrEmpty(XMLDoc.DocumentElement.Prefix), "cfd", XMLDoc.DocumentElement.Prefix)
|
||||
Dim cfdVer As String = "http://www.sat.gob.mx/cfd/3"
|
||||
Dim namespaces As XmlNamespaceManager = New XmlNamespaceManager(XMLDoc.NameTable)
|
||||
Dim Version = ValorXML(nodo, "version").Replace("..", ".")
|
||||
Dim PrefijoPagos As String = ""
|
||||
If Prefijo.ToLower() <> "cfdi" Then cfdVer = "http://www.sat.gob.mx/cfd/2"
|
||||
|
||||
If Version = "3.3" Then
|
||||
PrefijoPagos = "pago10"
|
||||
namespaces.AddNamespace(PrefijoPagos, "http://www.sat.gob.mx/Pagos")
|
||||
Prefijo = "cfdi"
|
||||
cfdVer = "http://www.sat.gob.mx/cfd/3"
|
||||
namespaces.AddNamespace(Prefijo, cfdVer)
|
||||
ElseIf Version = "4.0" Then
|
||||
PrefijoPagos = "pago20"
|
||||
namespaces.AddNamespace(PrefijoPagos, "http://www.sat.gob.mx/Pagos20")
|
||||
Prefijo = "cfdi"
|
||||
cfdVer = "http://www.sat.gob.mx/cfd/4"
|
||||
namespaces.AddNamespace(Prefijo, cfdVer)
|
||||
Else
|
||||
End If
|
||||
|
||||
Dim nodeComp As XmlNode = XMLDoc.SelectSingleNode(String.Format("//{0}:Complemento", Prefijo), namespaces)
|
||||
|
||||
If Version = "3.2" Then
|
||||
ElseIf Version = "3.3" OrElse Version = "4.0" Then
|
||||
|
||||
If nodeComp IsNot Nothing AndAlso nodeComp.ChildNodes.Count > 0 Then
|
||||
Dim NodosNodePagos As XmlNodeList = nodeComp.SelectNodes($"//{PrefijoPagos}:Pago", namespaces)
|
||||
|
||||
If NodosNodePagos IsNot Nothing Then
|
||||
|
||||
Try
|
||||
Dim nodePagos As XmlNode = nodeComp.SelectSingleNode($"//{PrefijoPagos}:Pagos", namespaces)
|
||||
|
||||
If Version = "3.3" Then
|
||||
XMLNodosPagos = nodePagos.InnerXml.Replace("pago10:", "").Replace("pagos10:", "").Replace(PrefijoPagos & ":", "")
|
||||
Else
|
||||
XMLNodosPagos = nodePagos.InnerXml.Replace("pago20:", "").Replace("pagos20:", "").Replace(PrefijoPagos & ":", "")
|
||||
End If
|
||||
|
||||
Catch ex As Exception
|
||||
ModExtensiones.GuardaLog(ex.ToString())
|
||||
End Try
|
||||
End If
|
||||
|
||||
Dim Pagos = New List(Of Pago)()
|
||||
Dim FechaPago As Date
|
||||
For Each nodePago As XmlNode In NodosNodePagos
|
||||
|
||||
Try
|
||||
FechaPago = ValorXML(nodePago, "FechaPago").ToDate()
|
||||
Catch e As Exception
|
||||
End Try
|
||||
|
||||
Dim pago = New Pago()
|
||||
pago.FechaPago = FechaPago
|
||||
pago.FormaDePagoP = ValorXML(nodePago, "FormaDePagoP").ToString()
|
||||
pago.MonedaP = ValorXML(nodePago, "MonedaP").ToString()
|
||||
pago.Monto = ValorXML(nodePago, "Monto").ToString().ToDecimal()
|
||||
Dim docs = New List(Of DoctoRelacionado)()
|
||||
Dim NodosPagosRelacionados As XmlNodeList = nodePago.SelectNodes($"//{PrefijoPagos}:DoctoRelacionado", namespaces)
|
||||
|
||||
For Each docto As XmlNode In NodosPagosRelacionados
|
||||
Dim idDoc = ValorXML(docto, "idDocumento")
|
||||
Dim ImportePago = ValorXML(docto, "ImpPagado").ToDecimal()
|
||||
Dim serie = ValorXML(docto, "Serie")
|
||||
Dim Folio = ValorXML(docto, "Folio")
|
||||
Dim MonedaDR = ValorXML(docto, "MonedaDR")
|
||||
Dim MetodoDePagoDR = ValorXML(docto, "MetodoDePagoDR")
|
||||
Dim NumParcialidad = ValorXML(docto, "NumParcialidad")
|
||||
Dim ImpSaldoInsoluto = ValorXML(docto, "ImpSaldoInsoluto").ToDecimal()
|
||||
Dim ImpSaldoAnt = ValorXML(docto, "ImpSaldoAnt").ToDecimal()
|
||||
docs.Add(New DoctoRelacionado() With {
|
||||
.idDocumento = idDoc,
|
||||
.ImportePago = ImportePago,
|
||||
.Serie = serie,
|
||||
.Folio = Folio,
|
||||
.MonedaDR = MonedaDR,
|
||||
.MetodoDePagoDR = MetodoDePagoDR,
|
||||
.NumParcialidad = NumParcialidad,
|
||||
.ImpSaldoAnt = ImpSaldoAnt,
|
||||
.ImpSaldoInsoluto = ImpSaldoInsoluto
|
||||
})
|
||||
Next
|
||||
|
||||
pago.Documentos = docs
|
||||
Pagos.Add(pago)
|
||||
Next
|
||||
|
||||
Me.Pagos = Pagos
|
||||
End If
|
||||
End If
|
||||
End Sub
|
||||
Private Function ValorXML(n As XmlNode, Campo As String, Optional Retorno As String = "") As String
|
||||
Dim o As XmlNode = n.Attributes.Cast(Of XmlAttribute)().SingleOrDefault(Function(a) String.Compare(a.Name, Campo, True) = 0)
|
||||
If o Is Nothing Then
|
||||
Return Retorno
|
||||
Else
|
||||
Return o.Value
|
||||
End If
|
||||
End Function
|
||||
Private Function CaratecteresvalidosFolio(ByVal Folio As String) As String
|
||||
Dim Respuesta As String = ""
|
||||
|
||||
'For Each c As Char In Folio.ToArray()
|
||||
|
||||
' If (c >= 48 AndAlso c <= 57) OrElse (c >= 65 AndAlso c <= 90) OrElse (c >= 97 AndAlso c <= 122) Then
|
||||
' Respuesta += c
|
||||
' End If
|
||||
'Next
|
||||
Return Respuesta
|
||||
End Function
|
||||
|
||||
'Private Sub CargaDesdeString(StrFuente As String)
|
||||
' Dim XMLCargaExistosa As Boolean = False
|
||||
' Dim XMlStr As String = StrFuente.Replace("<br>", "").Replace("<", "").Replace("o;?", "")
|
||||
' Dim XMLDoc As New XmlDocument
|
||||
' Try
|
||||
' XMLDoc.LoadXml(XMlStr)
|
||||
' XMLCargaExistosa = True
|
||||
' Catch ex As Exception
|
||||
' GuardaLog("Error al intentar leer . Error:" & ex.ToString())
|
||||
' 'Errores.AppendLine("Error al intentar leer el XML. Error:" & ex.ToString())
|
||||
' XMLCargaExistosa = False
|
||||
' End Try
|
||||
|
||||
' If XMLCargaExistosa Then
|
||||
' CargaComprobanteXML(XMLDoc)
|
||||
' End If
|
||||
|
||||
'End Sub
|
||||
Public Function CargaComprobanteXML(StrFuente As String, CveEmpresa As Integer) As Factura
|
||||
Dim XMLCargaExistosa As Boolean = False
|
||||
Dim XMlStr As String = StrFuente.Replace("<br>", "").Replace("<", "").Replace("o;?", "")
|
||||
Dim XMLDoc As New XmlDocument
|
||||
Try
|
||||
XMLDoc.LoadXml(XMlStr)
|
||||
XMLCargaExistosa = True
|
||||
Catch ex As Exception
|
||||
GuardaLog("Error al intentar leer . Error:" & ex.ToString())
|
||||
'Errores.AppendLine("Error al intentar leer el XML. Error:" & ex.ToString())
|
||||
XMLCargaExistosa = False
|
||||
End Try
|
||||
|
||||
If Not XMLCargaExistosa Then Return Nothing
|
||||
|
||||
Dim nodo As XmlNode = XMLDoc.DocumentElement
|
||||
Dim Fact As Factura = New Factura()
|
||||
Fact.Serie = ValorXML(nodo, "serie")
|
||||
|
||||
Dim StrCFDIVersion As String = ValorXML(nodo, "version")
|
||||
Fact.Version = StrCFDIVersion
|
||||
|
||||
Fact.Folio = ValorXML(nodo, "folio")
|
||||
Fact.Fecha = ValorXML(nodo, "fecha").ToDate
|
||||
Fact.SubTotal = ValorXML(nodo, "subTotal").ToDecimal
|
||||
Fact.Total = ValorXML(nodo, "total").ToDecimal
|
||||
Fact.Descuento = ValorXML(nodo, "descuento").ToDecimal
|
||||
Fact.Moneda = ValorXML(nodo, "Moneda")
|
||||
|
||||
Fact.CveMoneda = ClsPaginas.GlobalDTMonedas().FiltroPrimeroValor("CveMoneda", $" AbreviaturaSAT = '{Fact.Moneda}' ").ToEntero
|
||||
'If Not CveMoneda > 0 Then
|
||||
' GuardaLog($"Moneda {Moneda} no se obtuvo la clabe")
|
||||
' Errores.AppendLine($"Moneda {Moneda} no se obtuvo la clabe")
|
||||
' XMLCargaExistosa = False
|
||||
' Exit Sub
|
||||
'End If
|
||||
|
||||
Fact.TipoComprobante = ValorXML(nodo, "tipoDeComprobante")
|
||||
Fact.TipoCambio = ValorXML(nodo, "TipoCambio", "1").ToDecimal
|
||||
|
||||
If Fact.Version = "3.3" Or Fact.Version = "4.0" Then
|
||||
Dim drm As DataRow = ClsPaginas.GlobalDTVtaMetodoPago.FiltroPrimero(String.Format("ClaveMetodoPagoSAT = '{0}'", ValorXML(nodo, "MetodoPago")))
|
||||
If drm IsNot Nothing Then
|
||||
'Fact.MetododePago = drm("CveMetodoPago").ToString.ToEntero
|
||||
Fact.MetododePago = drm("MetodoPagoSAT").ToString
|
||||
End If
|
||||
End If
|
||||
|
||||
Dim namespaces As New XmlNamespaceManager(XMLDoc.NameTable)
|
||||
Dim Prefijo As String = If(XMLDoc.DocumentElement.Prefix = "", "cfd", XMLDoc.DocumentElement.Prefix)
|
||||
Dim cfdVer As String = ""
|
||||
|
||||
If StrCFDIVersion = "3.2" Then
|
||||
Prefijo = "cfd"
|
||||
cfdVer = "http://www.sat.gob.mx/cfd/2"
|
||||
ElseIf StrCFDIVersion = "3.3" Then
|
||||
cfdVer = "http://www.sat.gob.mx/cfd/3"
|
||||
Else ' se considera que es la version 4.0
|
||||
cfdVer = "http://www.sat.gob.mx/cfd/4"
|
||||
End If
|
||||
namespaces.AddNamespace(Prefijo, cfdVer)
|
||||
namespaces.AddNamespace("aerolineas", "http://www.sat.gob.mx/aerolineas")
|
||||
namespaces.AddNamespace("tfd", "http://www.sat.gob.mx/TimbreFiscalDigital")
|
||||
namespaces.AddNamespace("implocal", "http://www.sat.gob.mx/implocal")
|
||||
namespaces.AddNamespace("registrofiscal", "http://www.sat.gob.mx/registrofiscal")
|
||||
|
||||
If Fact.TipoComprobante.ToUpper = "E" AndAlso (Fact.Version.Contiene("3.3", "4.0")) Then
|
||||
Dim UUIDS As String = ""
|
||||
|
||||
Dim UUIDSLista As New List(Of String)
|
||||
Dim nodeCFDIRelacionados As XmlNode
|
||||
nodeCFDIRelacionados = XMLDoc.SelectSingleNode(String.Format("//{0}:CfdiRelacionados", Prefijo), namespaces)
|
||||
|
||||
If nodeCFDIRelacionados IsNot Nothing Then
|
||||
For Each CFDIRelacionados As XmlNode In nodeCFDIRelacionados
|
||||
UUIDSLista.Add("" & CFDIRelacionados.Attributes("UUID").Value.ToString & "")
|
||||
Next
|
||||
End If
|
||||
'DocumentosRelacionadosUUIDSList = UUIDSLista
|
||||
End If
|
||||
|
||||
Dim node As XmlNode
|
||||
node = XMLDoc.SelectSingleNode(String.Format("//{0}:Emisor", Prefijo), namespaces)
|
||||
|
||||
If node IsNot Nothing Then
|
||||
Fact.EmisorRFC = ValorXML(node, "RFC")
|
||||
Fact.EmisorNombre = ValorXML(node, "Nombre")
|
||||
End If
|
||||
|
||||
node = XMLDoc.SelectSingleNode(String.Format("//{0}:Receptor", Prefijo), namespaces)
|
||||
|
||||
If node IsNot Nothing Then
|
||||
Fact.ReceptorRFC = ValorXML(node, "RFC")
|
||||
End If
|
||||
|
||||
'If UsuarioActual.CveEmpresa.Contiene(119, 7) Then
|
||||
' node = XMLDoc.SelectSingleNode(String.Format("//{0}:CfdiRelacionados", Prefijo), namespaces)
|
||||
' If node IsNot Nothing AndAlso node.ChildNodes.Count > 0 Then
|
||||
' If ValorXML(node, "TipoRelacion").ToString.Contiene("07") Then
|
||||
' Dim nodeDocumentosRelacionados As XmlNodeList = XMLDoc.SelectNodes(String.Format("//{0}:CfdiRelacionado", Prefijo), namespaces)
|
||||
' For Each documento As XmlNode In nodeDocumentosRelacionados
|
||||
' If documento.Attributes("UUID").Value <> "" Then
|
||||
' DocumentosRelacionadosAnticiposUUIDList.Add(documento.Attributes("UUID").Value)
|
||||
' End If
|
||||
' TieneAnticiposXML = True
|
||||
' Next
|
||||
' End If
|
||||
' End If
|
||||
'End If
|
||||
|
||||
node = XMLDoc.SelectSingleNode(String.Format("//{0}:Impuestos", Prefijo), namespaces)
|
||||
If node IsNot Nothing AndAlso node.ChildNodes.Count > 0 Then
|
||||
Dim nodeRetenciones As XmlNodeList = XMLDoc.SelectNodes(String.Format("//{0}:Comprobante/{0}:Impuestos/{0}:Retenciones/{0}:Retencion", Prefijo), namespaces)
|
||||
|
||||
If Fact.Version.Contiene("3.3", "4.0") Then
|
||||
|
||||
For Each retencion As XmlNode In nodeRetenciones
|
||||
If retencion.Attributes("Impuesto").Value = "002" Then Fact.RetencionIVA += retencion.Attributes("Importe").Value.ToDecimal
|
||||
If retencion.Attributes("Impuesto").Value = "001" Then Fact.RetencionISR += retencion.Attributes("Importe").Value.ToDecimal
|
||||
Next
|
||||
|
||||
Else
|
||||
|
||||
For Each retencion As XmlNode In nodeRetenciones
|
||||
If retencion.Attributes("impuesto").Value = "IVA" Then Fact.RetencionIVA += retencion.Attributes("importe").Value.ToDecimal
|
||||
If retencion.Attributes("impuesto").Value = "ISR" Then Fact.RetencionISR += retencion.Attributes("importe").Value.ToDecimal
|
||||
Next
|
||||
End If
|
||||
|
||||
Dim nodeTraslados As XmlNodeList = XMLDoc.SelectNodes(String.Format("//{0}:Comprobante/{0}:Impuestos/{0}:Traslados/{0}:Traslado", Prefijo), namespaces)
|
||||
|
||||
If Fact.Version.Contiene("3.3", "4.0") Then
|
||||
|
||||
For Each traslado As XmlNode In nodeTraslados
|
||||
|
||||
If traslado.Attributes("Importe") IsNot Nothing Then
|
||||
If traslado.Attributes("Impuesto").Value = "002" Then Fact.TrasladoIVA += traslado.Attributes("Importe").Value.ToDecimal
|
||||
If traslado.Attributes("Impuesto").Value = "003" Then Fact.TrasladoIEPS += traslado.Attributes("Importe").Value.ToDecimal
|
||||
End If
|
||||
Next
|
||||
Else
|
||||
|
||||
For Each traslado As XmlNode In nodeTraslados
|
||||
If traslado.Attributes("Importe") IsNot Nothing Then
|
||||
If traslado.Attributes("impuesto").Value = "IVA" Then Fact.TrasladoIVA += traslado.Attributes("importe").Value.ToDecimal
|
||||
|
||||
If traslado.Attributes("impuesto").Value = "IEPS" Then Fact.TrasladoIEPS += traslado.Attributes("importe").Value.ToDecimal
|
||||
End If
|
||||
Next
|
||||
End If
|
||||
|
||||
End If
|
||||
|
||||
Dim nodeComp As XmlNode = XMLDoc.SelectSingleNode(String.Format("//{0}:Complemento", Prefijo), namespaces)
|
||||
If node IsNot Nothing AndAlso node.ChildNodes.Count > 0 Then
|
||||
|
||||
Dim nodeTFD As XmlNode = nodeComp.SelectSingleNode(String.Format("//{0}:TimbreFiscalDigital", "tfd"), namespaces)
|
||||
Fact.UUID = ValorXML(nodeTFD, "UUID", "")
|
||||
|
||||
Dim nodeRF As XmlNode = nodeComp.SelectSingleNode(String.Format("//{0}:CFDIRegistroFiscal ", "registrofiscal"), namespaces)
|
||||
If nodeRF IsNot Nothing Then
|
||||
Fact.Folio = ValorXML(nodeRF, "folio").TrimStart("0"c)
|
||||
End If
|
||||
End If
|
||||
|
||||
Dim ObjCompra As New ClsCompras
|
||||
|
||||
ObjCompra.AddFactura(Fact.Serie, Fact.Folio, Fact.Fecha, Fact.EmisorNombre, Fact.EmisorRFC, Fact.SubTotal, Fact.RetencionIVA, Fact.Total, Fact.UUID, Fact.ReceptorRFC, "", "", Fact.Version, Fact.Descuento, Fact.Moneda, Fact.TipoComprobante, Fact.TipoCambio, 0, CveEmpresa, "")
|
||||
|
||||
ObjCompra.Dispose()
|
||||
|
||||
'If XMLCargaExistosa Then
|
||||
' If Not ValidateUUID(UUID) Then
|
||||
' GuardaLog($"UUID Invalido {UUID} .")
|
||||
' Errores.AppendLine($"UUID Invalido {UUID} .")
|
||||
' XMLCargaExistosa = False
|
||||
' End If
|
||||
'End If
|
||||
|
||||
Return Fact
|
||||
End Function
|
||||
|
||||
|
||||
End Class
|
||||
End Namespace
|
||||
|
||||
Public Class GeneralesAPIeFacturas
|
||||
|
||||
Inherits ADSNetLibraryzdE.HelpersE.ConexionesE.SIGAPIE.BaseSIGAPIeFacturas
|
||||
|
||||
@@ -179,7 +179,7 @@
|
||||
</div>
|
||||
</div>
|
||||
<br />
|
||||
<div class="form-line">
|
||||
<div class="form-line" runat="server" Visible="false" >
|
||||
<div class="catcuentas left">Concepto</div>
|
||||
<div class="catcuentas right">
|
||||
<asp:DropDownList ID="DdlConcepto" DataTextField="ConceptoContable" DataValueField="CveConceptoContable" AutoPostBack="true" Width="100%"
|
||||
|
||||
@@ -528,7 +528,7 @@
|
||||
<Paragraph>
|
||||
<TextRuns>
|
||||
<TextRun>
|
||||
<Value />
|
||||
<Value>=Parameters!SerieConsola.Value</Value>
|
||||
<Style>
|
||||
<FontSize>8pt</FontSize>
|
||||
</Style>
|
||||
@@ -804,7 +804,7 @@
|
||||
<Paragraph>
|
||||
<TextRuns>
|
||||
<TextRun>
|
||||
<Value />
|
||||
<Value>=Parameters!SeriePedal.Value</Value>
|
||||
<Style>
|
||||
<FontSize>8pt</FontSize>
|
||||
</Style>
|
||||
@@ -3051,6 +3051,18 @@ Municipio y/o Delegación: </Value>
|
||||
<AllowBlank>true</AllowBlank>
|
||||
<Prompt>ReportParameter1</Prompt>
|
||||
</ReportParameter>
|
||||
<ReportParameter Name="SerieConsola">
|
||||
<DataType>String</DataType>
|
||||
<Nullable>true</Nullable>
|
||||
<AllowBlank>true</AllowBlank>
|
||||
<Prompt>ReportParameter1</Prompt>
|
||||
</ReportParameter>
|
||||
<ReportParameter Name="SeriePedal">
|
||||
<DataType>String</DataType>
|
||||
<Nullable>true</Nullable>
|
||||
<AllowBlank>true</AllowBlank>
|
||||
<Prompt>ReportParameter1</Prompt>
|
||||
</ReportParameter>
|
||||
</ReportParameters>
|
||||
<EmbeddedImages>
|
||||
<EmbeddedImage Name="Logo">
|
||||
|
||||
@@ -2625,7 +2625,6 @@ Partial Class General_SaldosIniciales
|
||||
Throw New Exception()
|
||||
End If
|
||||
End If
|
||||
|
||||
Else
|
||||
mensajeError.Append($"La unidad de medida no se reconoce para el producto servicio:{nuevaEntrada("CodigoPS")}")
|
||||
Throw New Exception()
|
||||
@@ -2650,7 +2649,6 @@ Partial Class General_SaldosIniciales
|
||||
Throw New Exception()
|
||||
Exit For
|
||||
End If
|
||||
|
||||
Next
|
||||
Catch ex As Exception
|
||||
If mensajeError.ToString = "" Then
|
||||
|
||||
@@ -266,9 +266,20 @@
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr id="TrConsola" runat="server" visible="false">
|
||||
<td colspan="2" class="row">
|
||||
<div class="row ">
|
||||
<div class="col-md-2">Consola</div>
|
||||
<div class="col-md-4"><asp:DropDownList ID="DdlConsola" runat="server" CssClass="form-control input-sm select2me" Style="width: 150px !important;">
|
||||
</asp:DropDownList></div>
|
||||
<div class="col-md-2">Pedal</div>
|
||||
<div class="col-md-4"><asp:DropDownList ID="DdlPedales" runat="server" CssClass="form-control input-sm select2me" Style="width: 150px !important;">
|
||||
</asp:DropDownList></div>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="2">
|
||||
|
||||
<asp:Panel ID="PnlEntrega" runat="server" Visible="false">
|
||||
<asp:RadioButton ID="RbSinEntrega" runat="server" OnCheckedChanged="EntregaRadioGroup_Click" Width="33%" GroupName="EntregaRadioGroup" Text="Entrega en mostrador" AutoPostBack="true"></asp:RadioButton>
|
||||
<asp:RadioButton ID="RbEntregaInterna" runat="server" OnCheckedChanged="EntregaRadioGroup_Click" Width="30%" GroupName="EntregaRadioGroup" Text="Entrega Interna" AutoPostBack="true"></asp:RadioButton>
|
||||
|
||||
@@ -321,14 +321,11 @@ Partial Class Inventarios_EntregaAlmacen
|
||||
End Set
|
||||
End Property
|
||||
|
||||
|
||||
Private Property CargaBitacora As Boolean
|
||||
Get
|
||||
|
||||
If ViewState("CargaBitacora") Is Nothing Then
|
||||
ViewState("CargaBitacora") = False
|
||||
End If
|
||||
|
||||
Return Boolean.Parse(ViewState("CargaBitacora").ToString)
|
||||
End Get
|
||||
Set(value As Boolean)
|
||||
@@ -336,7 +333,6 @@ Partial Class Inventarios_EntregaAlmacen
|
||||
End Set
|
||||
End Property
|
||||
|
||||
|
||||
Private Property BloqueCantidad As Boolean
|
||||
Get
|
||||
If ViewState("BloqueCantidad") Is Nothing Then
|
||||
@@ -348,9 +344,6 @@ Partial Class Inventarios_EntregaAlmacen
|
||||
ViewState("BloqueCantidad") = value
|
||||
End Set
|
||||
End Property
|
||||
|
||||
|
||||
|
||||
Private Property Adjunto As String
|
||||
Get
|
||||
If ViewState("Adjunto") Is Nothing Then
|
||||
@@ -364,8 +357,6 @@ Partial Class Inventarios_EntregaAlmacen
|
||||
End Set
|
||||
End Property
|
||||
|
||||
|
||||
|
||||
#End Region
|
||||
|
||||
Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load
|
||||
@@ -376,10 +367,8 @@ Partial Class Inventarios_EntregaAlmacen
|
||||
If UsuarioActual.CveEmpresa.Contiene(1, 72, 80, 146, 119, 186) Then DdlAlmacen.AutoPostBack = True
|
||||
|
||||
If UsuarioActual.Empresa.Funcionalidad(281).ToEntero() = 1 Then
|
||||
|
||||
TxtFecha.Enabled = False
|
||||
ImgFecha.Visible = False
|
||||
|
||||
End If
|
||||
|
||||
If UsuarioActual.Empresa.Funcionalidad(109) = "1" Then
|
||||
@@ -547,11 +536,9 @@ Partial Class Inventarios_EntregaAlmacen
|
||||
Alert("No se podrá realizar entrega de mercancía si no se les da salida a los documentos pendientes. Para más información ver el Reporte de notas sin entrada en la sección Ventas.", TipoMensaje.MsgAdvertencia)
|
||||
Else
|
||||
BtnGuardar.Enabled = True
|
||||
|
||||
End If
|
||||
End If
|
||||
End If
|
||||
|
||||
ObjInventarios.Dispose()
|
||||
|
||||
If DtPendientes IsNot Nothing Then
|
||||
@@ -641,7 +628,6 @@ Partial Class Inventarios_EntregaAlmacen
|
||||
|
||||
Adjunto = ""
|
||||
BtnArchivoAdjunto.Visible = False
|
||||
|
||||
LbSurtida.Visible = False
|
||||
CveContrato = -1
|
||||
CveSubProyecto = -1
|
||||
@@ -651,7 +637,6 @@ Partial Class Inventarios_EntregaAlmacen
|
||||
BtnGuardar.Visible = True
|
||||
|
||||
Dim StrAlmacenes As String = "CveTipoAlmacen IN (1,2,26)"
|
||||
|
||||
If UsuarioActual.CveSubProyecto = 8804 Then
|
||||
StrAlmacenes = "CveTipoAlmacen IN (1,2,12)"
|
||||
End If
|
||||
@@ -733,12 +718,9 @@ Partial Class Inventarios_EntregaAlmacen
|
||||
CveSubProyecto = drE("CveSubProyecto").ToString().ToEntero()
|
||||
EsInterno = CBool(DtDatos.Rows(0)("EsInterno").ToString())
|
||||
CveDireccionEnvio = drE("CveDireccionEnvio").ToString.ToEntero
|
||||
|
||||
|
||||
Adjunto = drE("Adjunto").ToString()
|
||||
|
||||
If Adjunto.Trim.Length > 0 Then
|
||||
|
||||
Dim ruta As String = HttpContext.Current.Request.ApplicationPath
|
||||
ruta = String.Format("{0}Ventas", UsuarioActual.Empresa.Ruta)
|
||||
ruta += $"/{Adjunto}"
|
||||
@@ -747,9 +729,6 @@ Partial Class Inventarios_EntregaAlmacen
|
||||
BtnArchivoAdjunto.Visible = True
|
||||
BtnArchivoAdjunto.Text = $"Adjunto: {Adjunto}"
|
||||
End If
|
||||
|
||||
|
||||
|
||||
End If
|
||||
|
||||
If CveDireccionEnvio > 0 Then
|
||||
@@ -785,7 +764,6 @@ Partial Class Inventarios_EntregaAlmacen
|
||||
BtnGuardar.Visible = False
|
||||
End If
|
||||
|
||||
|
||||
If CveAlmacen <= 0 Then
|
||||
DdlAlmacen.Items.Clear()
|
||||
If CveAlmacenTraspasoOrigen > 0 Then 'Not (EsDevolucionVenta = 1 And DtDatos.Rows(0)("TipoDocto").ToString() = "Rem" And UsuarioActual.Empresa.Funcionalidad(145) = "1") - ESTO ES PARA CUANDO SEA REMISION DE ENTREGA POR ADELANTADO FUNCIONA LA DEVOLUCION
|
||||
@@ -816,8 +794,49 @@ Partial Class Inventarios_EntregaAlmacen
|
||||
|
||||
If Not DtDatos.Columns.Contains("Seleccionado") Then DtDatos.Columns.Add("Seleccionado", GetType(Boolean))
|
||||
|
||||
If Not DtDatos.Columns.Contains("CantidadSeleccionada") Then DtDatos.Columns.Add("CantidadSeleccionada", GetType(Double))
|
||||
|
||||
If Not DtDatos.Columns.Contains("CantidadSeleccionada") Then DtDatos.Columns.Add("CantidadSeleccionada", GetType(Double))
|
||||
|
||||
If UsuarioActual.Empresa.Funcionalidad(578) = "1" AndAlso TipoMovimiento = 1 Then
|
||||
TrConsola.Visible = False
|
||||
' valida que estén los productos
|
||||
Dim cargapedales As Boolean = False
|
||||
If DtDatos.COUNT("Codigo", "Codigo like '306%' OR Codigo like '404%' OR Codigo like '405%'") > 0 Then
|
||||
'306, 404, 405, ARS-600
|
||||
DdlConsola.Items.Clear()
|
||||
DdlConsola.Items.Add(New ListItem("A6-2106045-GM", "A6-2106045-GM"))
|
||||
DdlConsola.Items.Add(New ListItem("A6-2101023-GM", "A6-2101023-GM"))
|
||||
DdlConsola.Items.Add(New ListItem("A6-2994026-GM", "A6-2994026-GM"))
|
||||
DdlConsola.Items.Add(New ListItem("A6-2203055-GM", "A6-2203055-GM"))
|
||||
DdlConsola.Items.Add(New ListItem("A6-2304031-GM", "A6-2304031-GM"))
|
||||
DdlConsola.Items.Add(New ListItem("A6-2304030-GM", "A6-2304030-GM"))
|
||||
DdlConsola.Items.Add(New ListItem("RENTA", "RENTA"))
|
||||
cargapedales = True
|
||||
TrConsola.Visible = True
|
||||
Consola = "ARS600"
|
||||
End If
|
||||
If DtDatos.COUNT("Codigo", "Codigo like '106%'") > 0 Then
|
||||
'306, 404, 405, ARS-800,
|
||||
DdlConsola.Items.Clear()
|
||||
DdlConsola.Items.Add(New ListItem("A8-2205011-DM", "A8-2205011-DM"))
|
||||
DdlConsola.Items.Add(New ListItem("RENTA", "RENTA"))
|
||||
cargapedales = True
|
||||
TrConsola.Visible = True
|
||||
Consola = "ARS800"
|
||||
End If
|
||||
|
||||
If cargapedales Then
|
||||
DdlPedales.Items.Clear()
|
||||
DdlPedales.Items.Add(New ListItem("AJ-23040710-S", "AJ-23040710-S"))
|
||||
DdlPedales.Items.Add(New ListItem("AJ-22110355-S", "AJ-22110355-S"))
|
||||
DdlPedales.Items.Add(New ListItem("AJ-23040709-S", "AJ-23040709-S"))
|
||||
DdlPedales.Items.Add(New ListItem("AJ-20050605-S", "AJ-20050605-S"))
|
||||
DdlPedales.Items.Add(New ListItem("AJ-20111710-S", "AJ-20111710-S"))
|
||||
DdlPedales.Items.Add(New ListItem("AJ-2106045-S", "AJ-2106045-S"))
|
||||
DdlPedales.Items.Add(New ListItem("AJ-22980506-S", "AJ-22980506-S"))
|
||||
DdlPedales.Items.Add(New ListItem("RENTA", "RENTA"))
|
||||
End If
|
||||
End If
|
||||
|
||||
If UsuarioActual.Empresa.Funcionalidad(280) = "1" Then
|
||||
FormaPaqueteria = DtDatos.Rows(0)("FormaPaqueteria").ToString().ToEntero()
|
||||
Dim FormaPaq As Integer = FormaPaqueteria
|
||||
@@ -1977,10 +1996,7 @@ Partial Class Inventarios_EntregaAlmacen
|
||||
|
||||
End Sub
|
||||
|
||||
Private Sub GuardaVenta()
|
||||
|
||||
ValidaUsaConsola()
|
||||
|
||||
Private Sub GuardaVenta()
|
||||
|
||||
Dim CantidadVenta As Decimal = 0
|
||||
'' INICIA: VALIDACIONES
|
||||
@@ -2053,9 +2069,7 @@ Partial Class Inventarios_EntregaAlmacen
|
||||
If Gvr.FCCheckBox("cbInv").Checked AndAlso Gvr.FCTextBox("TbCantidadF").Text.ToDecimal > 0 Then
|
||||
Cantidad += Gvr.FCTextBox("TbCantidadF").Text.ToDecimal
|
||||
End If
|
||||
|
||||
End If
|
||||
|
||||
End If
|
||||
Next
|
||||
|
||||
@@ -2095,11 +2109,16 @@ Partial Class Inventarios_EntregaAlmacen
|
||||
Next
|
||||
End If
|
||||
End If
|
||||
|
||||
Dim Guia As String = TxtGuia.Text.Trim
|
||||
Dim Recibio As String = ""
|
||||
If EsDevolucionVenta = 1 Or TipoDocto.Contiene({"Ped"}) Then
|
||||
Dim ValidaSalidaCompleta As Boolean = Not (EsDevolucionVenta = 1 And TipoDocto.Contiene("Rem", "Ped"))
|
||||
'LIMITAR EL NUMERO DE PARTIDAS QUE SE PUEDEN ENTREGAR
|
||||
If UsuarioActual.Empresa.Funcionalidad(578) = "1" Then
|
||||
If TrConsola.Visible Then
|
||||
Guia = DdlConsola.SelectedItem.Text
|
||||
Recibio = DdlPedales.SelectedItem.Text
|
||||
End If
|
||||
|
||||
'SoloNumeros entrega
|
||||
'SI EL CLIENTE ES OPERADORA DE HOSPITALES ANGELES SOLO SE PUEDEN RECIBIR MAXIMO 9
|
||||
@@ -2116,7 +2135,6 @@ Partial Class Inventarios_EntregaAlmacen
|
||||
End If
|
||||
End If
|
||||
End If
|
||||
|
||||
ValidaSalidaCompleta = False
|
||||
End If
|
||||
|
||||
@@ -2128,12 +2146,9 @@ Partial Class Inventarios_EntregaAlmacen
|
||||
Exit Sub
|
||||
End If
|
||||
Next
|
||||
|
||||
End If
|
||||
|
||||
End If
|
||||
|
||||
|
||||
Dim EsInterno As Integer = -1
|
||||
'If TipoDocto = "Ped" Then
|
||||
' EsInterno = If(Me.EsInterno, 1, 0)
|
||||
@@ -2281,10 +2296,7 @@ Partial Class Inventarios_EntregaAlmacen
|
||||
If Dr("FechaCaducidad").ToString.Trim.Length > 0 AndAlso Dr("FechaCaducidad").ToString.Trim <> "-1" Then
|
||||
SerieLoteCaducidad = $"{SerieLoteCaducidad} Caducidad: { Dr("FechaCaducidad").ToString.Trim.ToDate.ToString("dd/MM/yyyy")}"
|
||||
End If
|
||||
|
||||
TextoError.AppendFormat("<b> - {0}</b> Existencia: {1:#,##0.##} {2}<br/>", Dr("CodigoPS"), Dr("Existencia"), If(SerieLoteCaducidad <> ",", SerieLoteCaducidad, ""))
|
||||
|
||||
|
||||
Next
|
||||
End If
|
||||
Else
|
||||
@@ -2303,7 +2315,6 @@ Partial Class Inventarios_EntregaAlmacen
|
||||
RegistraScript("playsonidito('142608__autistic-lucario__error.wav')")
|
||||
Exit Sub
|
||||
End If
|
||||
|
||||
End If
|
||||
|
||||
'' TERMINA: VALIDACIONES
|
||||
@@ -2332,7 +2343,7 @@ Partial Class Inventarios_EntregaAlmacen
|
||||
If Not CveMovimientoSalida > 0 Then
|
||||
|
||||
CveMovimientoSalida = ObjInventario.AddMovimiento(Dr2("CveAlmacen").ToString().ToEntero(), CveConceptoSalidaSinCosto, 1, TxtFecha.Text.ToDate, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, CveVentaSurtir, -1, -1, CveOS:=CveOSSurtir,
|
||||
Observaciones:=TxtObservaciones.Text.Trim, Guia:=TxtGuia.Text, CveContrato:=CveContrato, Modulo:="RE/GSC1")
|
||||
Observaciones:=TxtObservaciones.Text.Trim, Guia:=Guia, CveContrato:=CveContrato, Modulo:="RE/GSC1")
|
||||
FolioSalida = ObjInventario.Folio
|
||||
|
||||
If Not CveMovimientoSalida > 0 Then
|
||||
@@ -2382,7 +2393,7 @@ Partial Class Inventarios_EntregaAlmacen
|
||||
|
||||
If Not CveMovimientoSalida > 0 Then
|
||||
CveMovimientoSalida = ObjInventario.AddMovimiento(Dr1("CveAlmacen").ToString().ToEntero(), CveConceptoSalidaSinCosto, 1, TxtFecha.Text.ToDate, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, CveVentaSurtir, -1, -1, CveOS:=CveOSSurtir,
|
||||
Observaciones:=TxtObservaciones.Text.Trim, Guia:=TxtGuia.Text, CveContrato:=CveContrato, Modulo:="RE/GSC3")
|
||||
Observaciones:=TxtObservaciones.Text.Trim, Guia:=Guia, CveContrato:=CveContrato, Modulo:="RE/GSC3")
|
||||
FolioSalida = ObjInventario.Folio
|
||||
|
||||
If Not CveMovimientoSalida > 0 Then
|
||||
@@ -2401,7 +2412,6 @@ Partial Class Inventarios_EntregaAlmacen
|
||||
DtTraspasos.Rows.Add(DrMovto)
|
||||
End If
|
||||
|
||||
|
||||
CantidadPendienteSinCosto = If(Dr1("ExistenciaFinal").ToString().ToDecimal > CantidadSaldoSinCosto, CantidadSaldoSinCosto, Dr1("ExistenciaFinal").ToString().ToDecimal)
|
||||
|
||||
If Not ObjInventario.AddMovimientoDetalle(CveMovimientoSalida, CantidadPendienteSinCosto.ToString().ToDecimal, Dr("CveUM").ToString().ToEntero(), Dr("CvePS").ToString().ToEntero(), 0,
|
||||
@@ -2414,7 +2424,6 @@ Partial Class Inventarios_EntregaAlmacen
|
||||
TextoError.AppendFormat("Ocurrió un error al procesar los conceptos de traspaso de apartado. Por favor vuelva a intentar.")
|
||||
Exit For
|
||||
End If
|
||||
|
||||
CantidadSaldoSinCosto -= CantidadPendienteSinCosto
|
||||
Dr("CantidadTraspaso") = Dr("CantidadTraspaso").ToString().ToDecimal + CantidadPendienteSinCosto
|
||||
If CantidadSaldoSinCosto <= 0 Then Exit For
|
||||
@@ -2424,14 +2433,10 @@ Partial Class Inventarios_EntregaAlmacen
|
||||
Else
|
||||
ErrorMovInv = True
|
||||
End If
|
||||
|
||||
End If
|
||||
|
||||
CantidadSalidaSinCosto += Dr("CantidadTraspaso").ToString().ToDecimal()
|
||||
If ErrorMovInv Then Exit For
|
||||
|
||||
End If
|
||||
|
||||
Next
|
||||
|
||||
'ENTRADA POR TRASPASO A ENTREGA POR ADELANTADO
|
||||
@@ -2443,7 +2448,7 @@ Partial Class Inventarios_EntregaAlmacen
|
||||
|
||||
CveMovimientoEntradaApartado = ObjInventario.AddMovimiento(CveAlmacenExA, 9, 1, TxtFecha.Text.ToDate, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, CveVentaSurtir, -1, -1, CveOS:=CveOSSurtir,
|
||||
Observaciones:=TxtObservaciones.Text.Trim, CveAlmacenDestino:=DdlAlmacen.SelectedValue.ToEntero(), CveMovimientoRelacionado:=CveMovimientoSalida,
|
||||
Guia:=TxtGuia.Text, CveContrato:=CveContrato, CveVendedor:=CveVendedor, CveCliente:=CveCliente, Modulo:="RE/G4")
|
||||
Guia:=Guia, CveContrato:=CveContrato, CveVendedor:=CveVendedor, CveCliente:=CveCliente, Modulo:="RE/G4")
|
||||
FolioEntrada = ObjInventario.Folio
|
||||
|
||||
If Not CveMovimientoEntradaApartado > 0 Then
|
||||
@@ -2524,7 +2529,7 @@ Partial Class Inventarios_EntregaAlmacen
|
||||
|
||||
If Not CveMovimientoSalida > 0 Then
|
||||
CveMovimientoSalida = ObjInventario.AddMovimiento(Dr2("CveAlmacen").ToString().ToEntero(), 8, 1, TxtFecha.Text.ToDate, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, CveVentaSurtir, -1, -1, CveOS:=CveOSSurtir,
|
||||
Observaciones:=TxtObservaciones.Text.Trim, Guia:=TxtGuia.Text, CveContrato:=CveContrato, CveVendedor:=CveVendedor, CveCliente:=If(UsuarioActual.Empresa.Funcionalidad(146) = "1", -1, CveCliente),
|
||||
Observaciones:=TxtObservaciones.Text.Trim, Guia:=Guia, CveContrato:=CveContrato, CveVendedor:=CveVendedor, CveCliente:=If(UsuarioActual.Empresa.Funcionalidad(146) = "1", -1, CveCliente),
|
||||
CveAlmacenDestino:=DdlAlmacen.SelectedValue.ToEntero(), Modulo:="RE/G1")
|
||||
FolioSalida = ObjInventario.Folio
|
||||
|
||||
@@ -2578,7 +2583,7 @@ Partial Class Inventarios_EntregaAlmacen
|
||||
|
||||
If Not CveMovimientoSalida > 0 Then
|
||||
CveMovimientoSalida = ObjInventario.AddMovimiento(Dr2("CveAlmacen").ToString().ToEntero(), 8, 1, TxtFecha.Text.ToDate, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, CveVentaSurtir, -1, -1, CveOS:=CveOSSurtir, Observaciones:=TxtObservaciones.Text.Trim,
|
||||
Guia:=TxtGuia.Text, CveContrato:=CveContrato, CveVendedor:=CveVendedor, CveCliente:=If(UsuarioActual.Empresa.Funcionalidad(146) = "1", -1, CveCliente),
|
||||
Guia:=Guia, CveContrato:=CveContrato, CveVendedor:=CveVendedor, CveCliente:=If(UsuarioActual.Empresa.Funcionalidad(146) = "1", -1, CveCliente),
|
||||
CveAlmacenDestino:=DdlAlmacen.SelectedValue.ToEntero(), Modulo:="RE/G2")
|
||||
FolioSalida = ObjInventario.Folio
|
||||
|
||||
@@ -2631,7 +2636,7 @@ Partial Class Inventarios_EntregaAlmacen
|
||||
|
||||
|
||||
CveMovimientoSalida = ObjInventario.AddMovimiento(Dr1("CveAlmacen").ToString().ToEntero(), 8, 1, TxtFecha.Text.ToDate, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, CveVentaSurtir, -1, -1, CveOS:=CveOSSurtir,
|
||||
Observaciones:=TxtObservaciones.Text.Trim, Guia:=TxtGuia.Text, CveContrato:=CveContrato, CveVendedor:=CveVendedor,
|
||||
Observaciones:=TxtObservaciones.Text.Trim, Guia:=Guia, CveContrato:=CveContrato, CveVendedor:=CveVendedor,
|
||||
CveCliente:=If(UsuarioActual.Empresa.Funcionalidad(146) = "1", -1, CveCliente), CveAlmacenDestino:=DdlAlmacen.SelectedValue.ToEntero(), Modulo:="RE/G3")
|
||||
FolioSalida = ObjInventario.Folio
|
||||
|
||||
@@ -2690,7 +2695,7 @@ Partial Class Inventarios_EntregaAlmacen
|
||||
|
||||
CveMovimientoEntradaApartado = ObjInventario.AddMovimiento(DdlAlmacen.SelectedValue.ToEntero(), 9, 1, TxtFecha.Text.ToDate, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, CveVentaSurtir, -1, -1, CveOS:=CveOSSurtir,
|
||||
Observaciones:=TxtObservaciones.Text.Trim, CveAlmacenDestino:=DdlAlmacen.SelectedValue.ToEntero(), CveMovimientoRelacionado:=CveMovimientoSalida,
|
||||
Guia:=TxtGuia.Text, CveContrato:=CveContrato, CveVendedor:=CveVendedor, CveCliente:=CveCliente, Modulo:="RE/G4")
|
||||
Guia:=Guia, CveContrato:=CveContrato, CveVendedor:=CveVendedor, CveCliente:=CveCliente, Modulo:="RE/G4")
|
||||
FolioEntrada = ObjInventario.Folio
|
||||
|
||||
If Not CveMovimientoEntradaApartado > 0 Then
|
||||
@@ -2732,7 +2737,7 @@ Partial Class Inventarios_EntregaAlmacen
|
||||
End If
|
||||
|
||||
If DtGarantias IsNot Nothing AndAlso DtGarantias.Rows.Count > 0 AndAlso CveAlmacenGarantia > 0 Then
|
||||
CveMovimientoGarantia = ObjInventario.AddMovimiento(CveAlmacenGarantia, 14, 1, TxtFecha.Text.ToDate, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, CveVentaSurtir, -1, -1, CveOS:=CveOSSurtir, Observaciones:=TxtObservaciones.Text.Trim, Guia:=TxtGuia.Text, Modulo:="EA/G5")
|
||||
CveMovimientoGarantia = ObjInventario.AddMovimiento(CveAlmacenGarantia, 14, 1, TxtFecha.Text.ToDate, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, CveVentaSurtir, -1, -1, CveOS:=CveOSSurtir, Observaciones:=TxtObservaciones.Text.Trim, Guia:=Guia, Modulo:="EA/G5")
|
||||
FolioGarantia = ObjInventario.Folio
|
||||
|
||||
For Each RowGarantia As DataRow In DtGarantias.Rows
|
||||
@@ -2786,7 +2791,7 @@ Partial Class Inventarios_EntregaAlmacen
|
||||
|
||||
Dim CveMovimientoDevolucionSinCosto As Integer = ObjInventario.AddMovimiento(DdlAlmacen.SelectedValue.ToEntero(), 41, 1, TxtFecha.Text.ToDate, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, CveVentaSurtir, -1, -1, CveOS:=CveOSSurtir,
|
||||
Observaciones:=TxtObservaciones.Text.Trim, CveAlmacenDestino:=DdlAlmacen.SelectedValue.ToEntero(), CveMovimientoRelacionado:=CveMovimientoSalida,
|
||||
Guia:=TxtGuia.Text, CveContrato:=CveContrato, CveVendedor:=CveVendedor, CveCliente:=CveCliente, Modulo:="RE/G4")
|
||||
Guia:=Guia, CveContrato:=CveContrato, CveVendedor:=CveVendedor, CveCliente:=CveCliente, Modulo:="RE/G4")
|
||||
Dim FolioDevSinCosto As Integer = ObjInventario.Folio
|
||||
|
||||
If Not CveMovimientoDevolucionSinCosto > 0 Then
|
||||
@@ -2868,7 +2873,7 @@ Partial Class Inventarios_EntregaAlmacen
|
||||
ConceptoMovimiento = 41
|
||||
End If
|
||||
|
||||
CveMovimiento = ObjInventario.AddMovimiento(Almacen1, ConceptoMovimiento, 1, TxtFecha.Text.ToDate, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, CveVentaSurtir, -1, -1, CveOS:=CveOSSurtir, Observaciones:=TxtObservaciones.Text.Trim, Guia:=TxtGuia.Text,
|
||||
CveMovimiento = ObjInventario.AddMovimiento(Almacen1, ConceptoMovimiento, 1, TxtFecha.Text.ToDate, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, CveVentaSurtir, -1, -1, CveOS:=CveOSSurtir, Observaciones:=TxtObservaciones.Text.Trim, Guia:=Guia, Recibio:=Recibio,
|
||||
CveContrato:=CveContrato, CveAlmacenDestino:=tCveAlmacenTraspasoDestino, Modulo:="RE/G7")
|
||||
Folio = ObjInventario.Folio
|
||||
|
||||
@@ -2969,7 +2974,7 @@ Partial Class Inventarios_EntregaAlmacen
|
||||
'ENTRADA POR TRASPASO CUANDO ES REMISION
|
||||
If Not ErrorMovInv Then
|
||||
If tCveAlmacenTraspasoDestino > 0 AndAlso Not (TipoMovimiento = 2 And TipoDocto = "Dev" And EsDevolucionVenta = 1) Then ' TRASPASO CUANDO ES REMISION
|
||||
CveMovimientoEntrada = ObjInventario.AddMovimiento(tCveAlmacenTraspasoDestino, 9, 1, TxtFecha.Text.ToDate, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, CveVentaSurtir, -1, -1, CveOS:=CveOSSurtir, Observaciones:=TxtObservaciones.Text.Trim, Guia:=TxtGuia.Text, CveContrato:=CveContrato,
|
||||
CveMovimientoEntrada = ObjInventario.AddMovimiento(tCveAlmacenTraspasoDestino, 9, 1, TxtFecha.Text.ToDate, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, CveVentaSurtir, -1, -1, CveOS:=CveOSSurtir, Observaciones:=TxtObservaciones.Text.Trim, Guia:=Guia, CveContrato:=CveContrato,
|
||||
CveMovimientoRelacionado:=CveMovimiento, CveAlmacenDestino:=DdlAlmacen.SelectedValue.ToEntero(), Modulo:="RE/G8")
|
||||
FolioEntrada = ObjInventario.Folio
|
||||
Dim ImporteAlmacen As Decimal = 0
|
||||
@@ -3027,7 +3032,7 @@ Partial Class Inventarios_EntregaAlmacen
|
||||
|
||||
If CveMovimientoSalidaApartado = -1 Or CveAlmacenApartado <> Dr("CveAlmacen").ToString().ToEntero() Then
|
||||
CveMovimientoSalidaApartado = ObjInventario.AddMovimiento(CveAlmacenOrigen, 8, 1, TxtFecha.Text.ToDate, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, CveVentaSurtir, -1, -1, CveOS:=CveOSSurtir,
|
||||
Observaciones:=TxtObservaciones.Text.Trim, Guia:=TxtGuia.Text, CveContrato:=CveContrato, CveVendedor:=CveVendedor, CveCliente:=CveCliente,
|
||||
Observaciones:=TxtObservaciones.Text.Trim, Guia:=Guia, CveContrato:=CveContrato, CveVendedor:=CveVendedor, CveCliente:=CveCliente,
|
||||
CveAlmacenDestino:=Dr("CveAlmacen").ToString().ToEntero(), Modulo:="RE/G9")
|
||||
FolioSalida = ObjInventario.Folio
|
||||
CveAlmacenApartado = Dr("CveAlmacen").ToString().ToEntero()
|
||||
@@ -3074,7 +3079,7 @@ Partial Class Inventarios_EntregaAlmacen
|
||||
|
||||
CveMovimientoEntradaApartado = ObjInventario.AddMovimiento(Dr1("CveAlmacen").ToString().ToEntero(), 9, 1, TxtFecha.Text.ToDate, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa,
|
||||
-1, CveVentaSurtir, -1, -1, CveOS:=CveOSSurtir, Observaciones:=TxtObservaciones.Text.Trim, CveAlmacenDestino:=DdlAlmacen.SelectedValue.ToEntero(),
|
||||
CveMovimientoRelacionado:=CveMovimientoSalida, Guia:=TxtGuia.Text, CveContrato:=CveContrato, CveVendedor:=CveVendedor,
|
||||
CveMovimientoRelacionado:=CveMovimientoSalida, Guia:=Guia, CveContrato:=CveContrato, CveVendedor:=CveVendedor,
|
||||
CveCliente:=CveCliente, Modulo:="RE/G10")
|
||||
FolioEntrada = ObjInventario.Folio
|
||||
|
||||
@@ -3220,7 +3225,7 @@ Partial Class Inventarios_EntregaAlmacen
|
||||
|
||||
If DtPSVirtual IsNot Nothing AndAlso DtPSVirtual.Rows.Count > 0 AndAlso CveAlmacenVirtual > 0 AndAlso CveConceptoMovimientoVirtual > 0 Then
|
||||
CveMovimientoVirtual = ObjInventario.AddMovimiento(CveAlmacenVirtual, CveConceptoMovimientoVirtual, 1, TxtFecha.Text.ToDate, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, CveVentaSurtir, -1, -1, CveOS:=CveOSSurtir,
|
||||
Observaciones:=TxtObservaciones.Text.Trim, Guia:=TxtGuia.Text, CveMovimientoRelacionado:=CveMovimientoRelacionadoVirtual, Modulo:="RE/G6")
|
||||
Observaciones:=TxtObservaciones.Text.Trim, Guia:=Guia, CveMovimientoRelacionado:=CveMovimientoRelacionadoVirtual, Modulo:="RE/G6")
|
||||
FolioVirtual = ObjInventario.Folio
|
||||
|
||||
If CveMovimientoVirtual > 0 Then
|
||||
|
||||
@@ -76,10 +76,10 @@ Partial Class PopUpBuscarFolio
|
||||
End Sub
|
||||
|
||||
Private Function ValidarFiltrosSeleccionados() As Boolean
|
||||
If DdlAlmacen.SelectedValue.ToEntero > 0 Then Return True
|
||||
If DdlTipoMovimiento.SelectedValue.ToEntero > 0 Then Return True
|
||||
If TxtFolio.Text.Length > 0 Then Return True
|
||||
Return False
|
||||
'If DdlAlmacen.SelectedValue.ToEntero > 0 Then Return True
|
||||
'If DdlTipoMovimiento.SelectedValue.ToEntero > 0 Then Return True
|
||||
'If TxtFolio.Text.Length > 0 Then Return True
|
||||
Return True
|
||||
End Function
|
||||
#End Region
|
||||
|
||||
|
||||
@@ -443,17 +443,13 @@
|
||||
<div class="col-md-6">
|
||||
|
||||
<div class="form-group form-md-line-input input-iconright date date-picker date date-picker" style="width: 150px">
|
||||
<asp:TextBox ID="TxtFechaOS" CssClass="form-control" runat="server" Width="150px"></asp:TextBox>
|
||||
<span class="input-group-btn " style="position: absolute; right: 41px; top: 9px;">
|
||||
<asp:TextBox ID="TxtFechaOS" CssClass="form-control" runat="server" Width="190px"></asp:TextBox>
|
||||
<span class="input-group-btn " style="position: absolute; right: 11px; top: 9px;">
|
||||
<asp:LinkButton ID="LnkTxtFechaOS" class="btn default " Text="<i class='fa fa-calendar'></i>" runat="server"></asp:LinkButton>
|
||||
</span>
|
||||
<ajax:MaskedEditExtender ID="MaskedEditExtender1" runat="server" TargetControlID="TxtFechaOS" Mask="99/99/9999" MaskType="Date" DisplayMoney="Left" AcceptNegative="Left"></ajax:MaskedEditExtender>
|
||||
</span>
|
||||
<ajax:CalendarExtender runat="server" ID="CalendarExtender1" TargetControlID="TxtFechaOS" PopupButtonID="LnkTxtFechaOS" PopupPosition="BottomRight" Enabled="True"></ajax:CalendarExtender>
|
||||
|
||||
<asp:RequiredFieldValidator ID="RfvTxtFechaOS" runat="server" ControlToValidate="TxtFechaOS" Display="None"
|
||||
ErrorMessage="El campo <b>''Fecha''</b> es requerido por la aplicación" ValidationGroup="GrpAsignar"></asp:RequiredFieldValidator>
|
||||
<ajax:ValidatorCalloutExtender ID="vceTxtFechaOS" runat="server" HighlightCssClass="vco" TargetControlID="RfvTxtFechaOS" Width="350px"></ajax:ValidatorCalloutExtender>
|
||||
|
||||
|
||||
<label for="<%= TxtFechaOS.ClientID.ToString()%>">Fecha: </label>
|
||||
</div>
|
||||
|
||||
@@ -464,24 +460,16 @@
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<div class="row">
|
||||
<div class="form-group col-md-6 form-md-line-input input-iconright selectmodal">
|
||||
<asp:Label runat="server" Style="width: 90%; color: #888888;" AssociatedControlID="DdlClientesWS">Cliente:</asp:Label>
|
||||
<ADS:Dropdownlost CssClassDdl="select2me" ID="DdlClientesWS" Width="100%" data-metodo="getcliente" runat="server" DataTextField="NombreComercial" DataValueField="CveCliente" CssStyle="width: 267px;"></ADS:Dropdownlost>
|
||||
|
||||
<div class="col-md-12">
|
||||
<%--DESCRIPCION--%>
|
||||
<div class="form-group form-md-line-input">
|
||||
<asp:TextBox ID="TxtCliente" runat="server" MaxLength="500" CssClass="form-control" />
|
||||
<label for="<%= TxtCliente.ClientID.ToString()%>">Hospital: </label>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="form-group col-md-6 form-md-line-input input-iconright selectmodal" style="margin-top:15px;">
|
||||
<asp:TextBox ID="TxtSolicito" runat="server" CssClass="form-control" Width="100%" MaxLength="50" />
|
||||
<label for="<%= TxtSolicito.ClientID.ToString()%>" style="width:269px">Solicitó: </label>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
@@ -492,84 +480,70 @@
|
||||
<label for="<%= TxtDescripcion.ClientID.ToString()%>">Descripción: </label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-md-6">
|
||||
<%--MEDICO--%>
|
||||
<div class="form-group form-md-line-input">
|
||||
<asp:TextBox ID="TxtMedico" runat="server" MaxLength="100" CssClass="form-control" />
|
||||
<label for="<%= TxtMedico.ClientID.ToString()%>">Médico: </label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<%--PROCEDIMIENTO--%>
|
||||
<div class="form-group form-md-line-input">
|
||||
<asp:TextBox ID="TxtProcedimiento" runat="server" MaxLength="100" CssClass="form-control" />
|
||||
<label for="<%= TxtProcedimiento.ClientID.ToString()%>">Procedimiento: </label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-md-6">
|
||||
<%--TIPO VENTA--%>
|
||||
<div class="form-group form-md-line-input">
|
||||
<asp:TextBox ID="TxtTipoVenta" runat="server" MaxLength="100" CssClass="form-control" />
|
||||
<label for="<%= TxtTipoVenta.ClientID.ToString()%>">Tipo Venta: </label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<%--TÉCNICO--%>
|
||||
<div class="form-group form-md-line-input">
|
||||
<asp:TextBox ID="TxtTecnico" runat="server" MaxLength="100" CssClass="form-control" />
|
||||
<label for="<%= TxtTecnico.ClientID.ToString()%>">Técnico: </label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<hr style="border: 0; height: 1px; background-image: linear-gradient(to right, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.75), rgba(0, 0, 0, 0));" />
|
||||
|
||||
<div class="row" runat="server" id="DVModalAsignacion" visible ="false">
|
||||
<div class="row" >
|
||||
|
||||
<div class="col-md-6">
|
||||
<div class="form-group form-md-line-input">
|
||||
<asp:DropDownList ID="DdlTecnicoAsignar" Width="100%" runat="server" CssClass="form-control select2me" DataTextField="Nombre" Visible="true" DataValueField="CveUsuario" AutoPostBack="true" OnSelectedIndexChanged="DdlTecnicoAsignar_SelectedIndexChanged1">
|
||||
</asp:DropDownList>
|
||||
|
||||
<%--<asp:RequiredFieldValidator ID="RfvDdlTecnicoAsignar" InitialValue="-1" runat="server" ControlToValidate="DdlTecnicoAsignar" Display="None"
|
||||
ErrorMessage="El campo <b>''Técnico''</b> es requerido por la aplicación" ValidationGroup="GrpAsignar"></asp:RequiredFieldValidator>
|
||||
<ajax:ValidatorCalloutExtender ID="VCERfvDdlTecnicoAsignar" runat="server" HighlightCssClass="vco" TargetControlID="RfvDdlTecnicoAsignar" Width="350px"></ajax:ValidatorCalloutExtender>--%>
|
||||
|
||||
<label for="<%= DdlTecnicoAsignar.ClientID.ToString()%>">Técnico: </label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
|
||||
<div class="col-md-12">
|
||||
<asp:GridView ID="GvPS" CssClass="table table-striped table-hover Widthall mysmallbtn" GridLines="None" runat="server" AutoGenerateColumns="False" DataKeyNames="CvePS" >
|
||||
<Columns>
|
||||
<asp:BoundField HeaderText="Cantidad" DataField="Cantidad" ItemStyle-Width="60px" DataFormatString="{0:#,###.##}" />
|
||||
<asp:BoundField HeaderText="Producto" DataField="PS" />
|
||||
</Columns>
|
||||
</asp:GridView>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<asp:LinkButton runat="server" ID="LnkModalAsignar" Visible="false" CssClass="btn btn-success" Text="Guardar" ValidationGroup="GrpAsignar"></asp:LinkButton>
|
||||
|
||||
<button type="button" class="btn btn-default" data-dismiss="modal">Cerrar</button>
|
||||
<asp:LinkButton runat="server" ID="LnkCancelarOrden" CssClass="btn btn-danger" Text="Cancelar Orden" OnClick="LnkCancelarOrden_Click" Visible="false" >
|
||||
</asp:LinkButton>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</ContentTemplate>
|
||||
</asp:UpdatePanel>
|
||||
</div>
|
||||
|
||||
|
||||
<div id="DVModalCancelacionOrden" class="modal ADS fade" role="dialog">
|
||||
<asp:UpdatePanel class="modal-dialog" runat="server" ID="UpmodalCacelaOrden" UpdateMode="Conditional">
|
||||
<ContentTemplate>
|
||||
<div class="modal-content">
|
||||
<div class="modal-header ">
|
||||
<button type="button" class="close" data-dismiss="modal">×</button>
|
||||
<h4 class="modal-title">
|
||||
<asp:Label runat="server" ID="LblModalCancelarTitulo">Cancelar Orden de Servicio</asp:Label></h4>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<div class="form-group form-md-line-input input-iconright">
|
||||
<asp:TextBox ID="TxtModalCancelarOrdenMotivo" CssClass="form-control" runat="server" MaxLength="100" CausesValidation="true"></asp:TextBox>
|
||||
<asp:Label AssociatedControlID="TxtModalCancelarOrdenMotivo" runat="server" Text="Motivo:"></asp:Label>
|
||||
<asp:RequiredFieldValidator ID="RfvTxtModalCancelarOrdenMotivo" runat="server" ControlToValidate="TxtModalCancelarOrdenMotivo" CssClass="help-block errorimput"
|
||||
ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Motivo''</b> es necesario, por favor ingréselo."
|
||||
ValidationGroup="GrpCancelaOrden"></asp:RequiredFieldValidator>
|
||||
<i></i>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<asp:LinkButton runat="server" ID="LnkmodalCancelarORdenServicio" CssClass="btn btn-danger" Text="Cancelar Orden" OnClick="LnkmodalCancelarORdenServicio_Click" ValidationGroup="GrpCancelaOrden" CausesValidation="true"
|
||||
data-toggle="confirmation" data-popout="true" data-original-title="confirmar" data-btn-ok-label="si"></asp:LinkButton>
|
||||
<button type="button" class="btn btn-default" data-dismiss="modal">Cerrar</button>
|
||||
</div>
|
||||
</div>
|
||||
</ContentTemplate>
|
||||
</asp:UpdatePanel>
|
||||
</div>
|
||||
<div style="display:none">
|
||||
<div style="display:none">
|
||||
|
||||
<asp:UpdatePanel ID="UpCommando" runat="server">
|
||||
<ContentTemplate>
|
||||
<asp:Button runat="server" ID="LnkCommando" OnClick="LnkCommando_Click"></asp:Button>
|
||||
<asp:Button runat="server" ID="LnkValidaHorarioNoOperativo" OnClick="LnkValidaHorarioNoOperativo_Click"></asp:Button>
|
||||
<asp:Button runat="server" ID="LnkCommando" OnClick="LnkCommando_Click"></asp:Button>
|
||||
<asp:HiddenField runat="server" ID="HFCveOS" Value="-1" ClientIDMode="Static" />
|
||||
<asp:HiddenField runat="server" ID="HFCveOsDetalle" Value="-1" ClientIDMode="Static" />
|
||||
<asp:HiddenField runat="server" ID="HFOCveOIEvento" Value="-1" ClientIDMode="Static" />
|
||||
@@ -925,10 +899,10 @@
|
||||
if (validando == 1) {
|
||||
var timestamp = Date.parse(Text);
|
||||
|
||||
if (isNaN(timestamp) == false) {
|
||||
<%--if (isNaN(timestamp) == false) {
|
||||
$('#<%=LnkValidaHorarioNoOperativo.ClientID%>').click();
|
||||
|
||||
}
|
||||
}--%>
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -251,8 +251,6 @@ Partial Class OS_RepServiciosMedicos
|
||||
Asignacion
|
||||
End Enum
|
||||
|
||||
|
||||
|
||||
#End Region
|
||||
|
||||
Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load
|
||||
@@ -268,15 +266,7 @@ Partial Class OS_RepServiciosMedicos
|
||||
InicializaCalendar()
|
||||
GetCargaTiposOrden()
|
||||
cargaDropsModal()
|
||||
CargaClientePublicoGeneral()
|
||||
|
||||
If UsuarioActual.TienePermisoProceso(348) Then
|
||||
DVModalAsignacion.Visible = True
|
||||
End If
|
||||
|
||||
If UsuarioActual.TienePermisoProceso(352) Then
|
||||
LnkCancelarOrden.Visible = True
|
||||
End If
|
||||
|
||||
End If
|
||||
End Sub
|
||||
@@ -374,10 +364,6 @@ Partial Class OS_RepServiciosMedicos
|
||||
|
||||
'ObjOS.Dispose()
|
||||
|
||||
DdlTecnicoAsignar.DataSource = DTTecnicos 'GlobalDTUsuarios(-1, UsuarioActual.CveEmpresa).FiltraParametros("Estatus = 'True'")
|
||||
DdlTecnicoAsignar.DataBind()
|
||||
DdlTecnicoAsignar.Items.Insert(0, New ListItem("Seleccione uno", "-1"))
|
||||
|
||||
UpModalOS.Update()
|
||||
|
||||
End Sub
|
||||
@@ -592,38 +578,28 @@ Partial Class OS_RepServiciosMedicos
|
||||
'DdlClientesWS.txtText.Value = ""
|
||||
'DdlClientesWS.txtValue.Value = ""
|
||||
|
||||
If UsuarioActual.Empresa.Funcionalidad(105) = "1" Then
|
||||
DdlClientesWS.setEsWebService(True)
|
||||
Else
|
||||
DdlClientesWS.setEsWebService(False)
|
||||
CargaClientes()
|
||||
End If
|
||||
'If UsuarioActual.Empresa.Funcionalidad(105) = "1" Then
|
||||
' DdlClientesWS.setEsWebService(True)
|
||||
'Else
|
||||
' DdlClientesWS.setEsWebService(False)
|
||||
' CargaClientes()
|
||||
'End If
|
||||
|
||||
End Sub
|
||||
|
||||
Private Sub CargaClientes()
|
||||
If Not UsuarioActual.Empresa.Funcionalidad(105) = "1" Then
|
||||
DdlClientesWS.ddl.Items.Clear()
|
||||
DdlClientesWS.DataSource = GlobalDTCliente(UsuarioActual.CveEmpresa, -1)
|
||||
DdlClientesWS.DataBind()
|
||||
DdlClientesWS.ddl.Items.Insert(0, New ListItem("Todos", "-1"))
|
||||
End If
|
||||
'If Not UsuarioActual.Empresa.Funcionalidad(105) = "1" Then
|
||||
' DdlClientesWS.ddl.Items.Clear()
|
||||
' DdlClientesWS.DataSource = GlobalDTCliente(UsuarioActual.CveEmpresa, -1)
|
||||
' DdlClientesWS.DataBind()
|
||||
' DdlClientesWS.ddl.Items.Insert(0, New ListItem("Todos", "-1"))
|
||||
'End If
|
||||
End Sub
|
||||
|
||||
Private Sub LipiaModalOS()
|
||||
|
||||
TxtSolicito.Text = ""
|
||||
TxtDescripcion.Text = ""
|
||||
TxtFechaOS.Text = ""
|
||||
|
||||
DdlClientesWS.txtText.Value = ""
|
||||
DdlClientesWS.txtValue.Value = ""
|
||||
DdlClientesWS.ddl.SelectedValueExist("-1")
|
||||
DdlTecnicoAsignar.SelectedValueExist("-1")
|
||||
|
||||
'TSTimeSelector.Hour = NowADS().Hour
|
||||
'TSTimeSelector.Minute = NowADS().Minute
|
||||
|
||||
CveTecnicoAsignarOrioginal = -1
|
||||
FechaInicioOriginal = NowADS()
|
||||
|
||||
@@ -642,12 +618,6 @@ Partial Class OS_RepServiciosMedicos
|
||||
LipiaModalOS()
|
||||
If TipoAccion = OSModalTipoAccion.Agregar Then
|
||||
|
||||
If UsuarioActual.Empresa.Funcionalidad(105) = "1" Then
|
||||
DdlClientesWS.txtValue.Value = CveClientePublicoGeneral.ToString
|
||||
DdlClientesWS.txtText.Value = NombreClientePublicoGeneral
|
||||
Else
|
||||
DdlClientesWS.ddl.SelectedValueExist(CveClientePublicoGeneral)
|
||||
End If
|
||||
|
||||
TxtFechaOS.Text = NowADS().ToString("dd/MM/yyyy")
|
||||
RegistraScript("$('#DVModalOS').modal('show');")
|
||||
@@ -656,60 +626,51 @@ Partial Class OS_RepServiciosMedicos
|
||||
ElseIf TipoAccion = OSModalTipoAccion.Actualizacion Or TipoAccion = OSModalTipoAccion.Asignacion Then
|
||||
|
||||
'cargaDropsModal()
|
||||
LblModalOStitulo.Text = "Actualizar Orden de Servicio"
|
||||
|
||||
|
||||
LblModalOStitulo.Text = "Orden de Servicio"
|
||||
Dim IDOSDetalle As Integer = 1
|
||||
Dim SeFacturara = ""
|
||||
Dim CveOsConsultar As Integer = HFCveOS.Value.ToEntero
|
||||
|
||||
'If Not CveOsConsultar > 0 AndAlso Not DdlOrdenesSinAsignar.SelectedValue.ToEntero > 0 Then
|
||||
' Alert("clave de orden de servicio no encontrada.", TipoMensaje.MsgAdvertencia)
|
||||
' Exit Sub
|
||||
'End If
|
||||
|
||||
If CveOsConsultar > 0 Then
|
||||
DdlOrdenesSinAsignar.SelectedValueExist(-1)
|
||||
End If
|
||||
Dim ObjOS As New ClsOS()
|
||||
If ObjOS.GetOrdenesServicios(CveOsConsultar, -1, -1, -1, -1, UsuarioActual.CveEmpresa, CveOSDetalle:=DdlOrdenesSinAsignar.SelectedValue.ToEntero) Then
|
||||
Dim thospital As String = ObjOS.Cliente
|
||||
If ObjOS.CveClienteSucursal > 0 Then
|
||||
thospital = GlobalDTClientesSucursales(ObjOS.CveEmpresa, ObjOS.CveCliente).FiltroPrimeroValor("SucursalCliente", $"CveClienteSucursal = {ObjOS.CveClienteSucursal}")
|
||||
End If
|
||||
|
||||
DVFolio.Visible = True
|
||||
HLkFolio.Text = ObjOS.Folio.ToString
|
||||
HLkFolio.NavigateUrl = $"/OS/OrdenesServicios.aspx?CveOS={ObjOS.CveOS}"
|
||||
|
||||
HLKPDF.NavigateUrl = $"/Compras/PopUpVerFactura.aspx?P={Encripta(String.Format("OP=OS&CVEOS={0}", ObjOS.CveOS))}"
|
||||
|
||||
|
||||
HFCveOS.Value = ObjOS.CveOS.ToString
|
||||
HFCveOsDetalle.Value = ObjOS.CveOSDetalle.ToString
|
||||
TxtDescripcion.Text = ObjOS.Descripcion
|
||||
TxtSolicito.Text = ObjOS.PersonaSolicito
|
||||
TxtFechaOS.Text = ObjOS.FechaRecepcion.ToString("dd/MM/yyyy")
|
||||
'DdlSubProyectoOS.SelectedValueExist(ObjOS.CveSubProyecto)
|
||||
DdlClientesWS.txtText.Value = ObjOS.Cliente
|
||||
DdlClientesWS.txtValue.Value = ObjOS.CveCliente.ToString
|
||||
DdlClientesWS.ddl.SelectedValueExist(ObjOS.CveCliente.ToString)
|
||||
TxtFechaOS.Text = ObjOS.FechaCita.ToString("dd/MM/yyyy HH:mm")
|
||||
TxtProcedimiento.Text = GlobalDTProcedimientos(UsuarioActual.CveEmpresa).FiltroPrimeroValor("Procedimiento", "CveProcedimiento =" & ObjOS.CveProcedimiento)
|
||||
TxtMedico.Text = GlobalDTMedicos(UsuarioActual.CveEmpresa).FiltroPrimeroValor("Medico", "CveMedico =" & ObjOS.CveMedico)
|
||||
TxtCliente.Text = thospital
|
||||
TxtTipoVenta.Text = GlobalDTTipoVenta(UsuarioActual.CveEmpresa).FiltroPrimeroValor("TipoVenta", $"CveTipoVenta ={ObjOS.CveTipoVenta}")
|
||||
TxtTecnico.Text = ObjOS.UsuarioAtendio
|
||||
|
||||
If TipoAccion = OSModalTipoAccion.Actualizacion Then
|
||||
DdlTecnicoAsignar.SelectedValueExist(ObjOS.CveUsuarioAtendio)
|
||||
CveTecnicoAsignarOrioginal = ObjOS.CveUsuarioAtendio
|
||||
FechaInicioOriginal = ObjOS.FechaInicio
|
||||
|
||||
DvModalSubProyecto.Visible = True
|
||||
LblModalOStitulo.Text = "Actualizar Orden de Servicio"
|
||||
'TSTimeSelector.Hour = If(ObjOS.FechaInicio.Hour > 12, ObjOS.FechaInicio.Hour - 12, ObjOS.FechaInicio.Hour)
|
||||
'TSTimeSelector.Minute = ObjOS.FechaInicio.Minute
|
||||
'TSTimeSelector.AmPm = If(ObjOS.FechaInicio.Hour > 12, MKB.TimePicker.TimeSelector.AmPmSpec.PM, MKB.TimePicker.TimeSelector.AmPmSpec.AM)
|
||||
Dim tCve As Integer = ObjOS.CveVenta 'busca la remisión
|
||||
If tCve <= 0 Then tCve = ObjOS.CveCotizacion 'sino hay remisión toma el pedido
|
||||
If tCve > 0 Then
|
||||
Dim objv As New ClsVentas
|
||||
Dim dttps As New DataTable
|
||||
If objv.GetVentaDetalle(tCve) Then
|
||||
dttps = objv.DtResultados
|
||||
End If
|
||||
objv.Dispose()
|
||||
GvPS.DataSource = dttps
|
||||
GvPS.DataBind()
|
||||
End If
|
||||
|
||||
|
||||
Dim TipoEstatus As Integer = 0
|
||||
TipoEstatus = GlobalDTEstatusOrdenServicios(UsuarioActual.CveEmpresa).FiltroPrimeroValor("TipoEstatus", String.Format("CveEstatusOrdenServicio = {0}", ObjOS.CveEstatusOrdenServicio), "CveEstatusOrdenServicio ASC").ToEntero
|
||||
|
||||
'LnkModalAsignar.Visible = If(TipoEstatus.Contiene(4, 5), False, True)
|
||||
LnkCancelarOrden.Visible = If(TipoEstatus.Contiene(4, 5), False, True)
|
||||
|
||||
If (TipoEstatus = 5) Then
|
||||
LblModalOStitulo.Text = "Orden Cancelada"
|
||||
End If
|
||||
@@ -752,345 +713,6 @@ Partial Class OS_RepServiciosMedicos
|
||||
End Sub
|
||||
|
||||
|
||||
Protected Sub LnkModalAsignar_Click(sender As Object, e As EventArgs)
|
||||
|
||||
Dim TieneError As Boolean = False
|
||||
Dim CveEstatusSolicidato = GlobalDTEstatusOrdenServicios(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveEstatusOrdenServicio", "TipoEstatus = 1", "CveEstatusOrdenServicio ASC").ToEntero
|
||||
Dim CveEstatusAsiganada = GlobalDTEstatusOrdenServicios(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveEstatusOrdenServicio", "TipoEstatus = 2", "CveEstatusOrdenServicio ASC").ToEntero
|
||||
|
||||
Dim CveCliente As Integer = If(Not DdlClientesWS.SelectedValue.ToEntero > 0, DdlClientesWS.txtValue.Value.ToString.ToEntero, DdlClientesWS.SelectedValue.ToEntero)
|
||||
Dim CvePSDetalle As Integer = UsuarioActual.Empresa.Funcionalidad(708).ToEntero
|
||||
Dim EsNueva As Boolean = False
|
||||
|
||||
|
||||
Dim CveOS As Integer = HFCveOS.Value.ToEntero
|
||||
Dim CveOsDetalle As Integer = HFCveOsDetalle.Value.ToEntero
|
||||
|
||||
|
||||
Dim CveSubProyectoTecnico As Integer = If(DdlTecnicoAsignar.SelectedValue.ToEntero > 0, GlobalDTUsuarios(DdlTecnicoAsignar.SelectedValue.ToEntero, UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveSubProyecto", " CveSubProyecto > 0 ").ToEntero, -1)
|
||||
|
||||
If CveSubProyectoTecnico = 0 And DdlTecnicoAsignar.SelectedValue.ToEntero = 100 Then
|
||||
CveSubProyectoTecnico = GlobalDTSubProyectos(-1, -1, UsuarioActual.CveEmpresa, 1).FiltroPrimeroValor("CveSubProyecto").ToEntero
|
||||
End If
|
||||
|
||||
|
||||
If TipoAccion = OSModalTipoAccion.Asignacion AndAlso Not CveSubProyectoTecnico > 0 Then
|
||||
Alert("No se encontro el subproyecto o centro de costo del tecnico seleccionado.")
|
||||
Exit Sub
|
||||
End If
|
||||
|
||||
If Not CvePSDetalle > 0 Then
|
||||
Alert("No esta asiganado el producto del detalle a la funcionalidad.")
|
||||
Exit Sub
|
||||
End If
|
||||
|
||||
If Not CveCliente > 0 Then
|
||||
Alert("Debe seleccionar una cliente.")
|
||||
Exit Sub
|
||||
End If
|
||||
|
||||
If TipoAccion = OSModalTipoAccion.Asignacion Then
|
||||
|
||||
If Not DdlTecnicoAsignar.SelectedValue.ToEntero > 0 Then
|
||||
Alert("El tecnico es requerido", TipoMensaje.MsgAdvertencia)
|
||||
Exit Sub
|
||||
End If
|
||||
|
||||
|
||||
|
||||
End If
|
||||
|
||||
Dim ObjOS As New ClsOS
|
||||
ObjOS.IniciaTransacSQL()
|
||||
|
||||
If CveOS > 0 Then
|
||||
|
||||
Dim CveEstatusOrden = CveEstatusSolicidato
|
||||
If DdlTecnicoAsignar.SelectedValue.ToEntero > 0 Then
|
||||
CveEstatusOrden = CveEstatusAsiganada
|
||||
End If
|
||||
|
||||
If TipoAccion = OSModalTipoAccion.Asignacion Then
|
||||
CveEstatusOrden = CveEstatusAsiganada
|
||||
End If
|
||||
|
||||
CveOS = HFCveOS.Value.ToEntero
|
||||
CveOsDetalle = HFCveOsDetalle.Value.ToEntero
|
||||
|
||||
If CveOS > 0 Then
|
||||
|
||||
If Not ObjOS.UpdateOrdenesServicios(TxtSolicito.Text, TxtFechaOS.Text, TxtDescripcion.Text, UsuarioActual.CveUsuario, CveEstatusOrden, CveOS, UsuarioActual.CveUsuario,
|
||||
-1, CveClienteSucursal:=-1, Direccion:="", Telefono:="",
|
||||
CveSubProyecto:=CveSubProyectoTecnico, Correo:="") Then
|
||||
TieneError = True
|
||||
End If
|
||||
Else
|
||||
TieneError = True
|
||||
End If
|
||||
|
||||
End If
|
||||
|
||||
'Dim picker As MKB.TimePicker.TimeSelector = TSTimeSelector
|
||||
'Dim time As DateTime
|
||||
'time = DateTime.Parse(String.Format("{0} {1}:{2} {3}", TxtModalFechaOS.Text, picker.Hour, picker.Minute, picker.AmPm))
|
||||
|
||||
If Not TieneError AndAlso CveOS > 0 AndAlso CveOsDetalle > 0 AndAlso DdlTecnicoAsignar.SelectedValue.ToEntero > 0 AndAlso
|
||||
(HFCveUsuarioAtendio.Value.ToEntero <> DdlTecnicoAsignar.SelectedValue.ToEntero) Then
|
||||
|
||||
|
||||
'If Not ObjOS.UpdateOrdenesServiciosAsignadas(CveOsDetalle, DdlTecnicoAsignar.SelectedValue.ToEntero, TxtModalFechaOS.Text.ToDate, TxtModalFechaOS.Text.ToDateTime(), UsuarioActual.CveEmpresa, UsuarioActual.CveUsuario) Then
|
||||
' TieneError = True
|
||||
'End If
|
||||
|
||||
|
||||
'If ObjOS.GetSubProyectosEstatusInicial(DdlTecnicoAsignar.SelectedValue.ToEntero, 3, UsuarioActual.CveEmpresa) Then
|
||||
' Dim subProyectoDelTecnico As DataTable
|
||||
' subProyectoDelTecnico = ObjOS.DtResultados.FiltraParametros($"CveSubProyecto = {CveSubProyectoTecnico}")
|
||||
|
||||
' If subProyectoDelTecnico.Rows.Count > 0 Then
|
||||
' If Not ObjOS.UpdateOrdenesServiciosAsignadas(CveOsDetalle, DdlTecnicoAsignar.SelectedValue.ToEntero, TxtModalFechaOS.Text.ToDate, TxtModalFechaOS.Text.ToDateTime(), UsuarioActual.CveEmpresa) Then
|
||||
' TieneError = True
|
||||
' End If
|
||||
' Else
|
||||
' Alert("El técnico y la Orden de Servicio deben pertenecer al mismo subProyecto", TipoMensaje.MsgAdvertencia)
|
||||
' TieneError = True
|
||||
' End If
|
||||
'End If
|
||||
|
||||
|
||||
|
||||
If Not TieneError Then
|
||||
|
||||
If Not ObjOS.UpdateOrdenesServiciosEstatus(CveEstatusAsiganada, UsuarioActual.CveUsuario, CveOS) Then
|
||||
TieneError = True
|
||||
End If
|
||||
|
||||
If Not TieneError Then
|
||||
|
||||
|
||||
Dim ObjEventos As New ClsOIEventos(ObjOS.IniciaTransacSQL())
|
||||
|
||||
If HFOCveOIEvento.Value.ToEntero > 0 Then
|
||||
|
||||
If Not ObjEventos.RemoveAgendaBitacora(HFOCveOIEvento.Value.ToEntero, UsuarioActual.CveEmpresa) Then
|
||||
TieneError = True
|
||||
End If
|
||||
|
||||
End If
|
||||
|
||||
|
||||
Dim RecurrenciaTipo = 0, Frecuencia = -1, DiasSemana = "-1", Dias = -1, Mes = -1, RecurrenciaFin = "-1"
|
||||
Dim OIDescripcion As String = $"{DdlTecnicoAsignar.SelectedItem.Text} <b><a href='/OS/OrdenesServicios.aspx?CveOS={CveOS}' target='_blank' class='Texto' >Orden de servicio {FolioAsignar} </a></b>"
|
||||
If Not ObjEventos.AddEventoAgenda(2, DdlTecnicoAsignar.SelectedItem.Text, OIDescripcion, 2, TxtFechaOS.Text.ToDateTime(), TxtFechaOS.Text.ToDateTime().AddHours(1), UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa,
|
||||
RecurrenciaTipo:=RecurrenciaTipo, Frecuencia:=Frecuencia, DiasSemana:=DiasSemana, Dia:=Dias, Mes:=Mes, RecurrenciaFin:=RecurrenciaFin, CveTipoEvento:=2,
|
||||
Importe:=0, CveOS:=CveOS, CveSubProyecto:=CveSubProyectoTecnico, CveUsuarioPara:=DdlTecnicoAsignar.SelectedValue.ToEntero) Then
|
||||
TieneError = True
|
||||
End If
|
||||
End If
|
||||
End If
|
||||
End If
|
||||
|
||||
If Not TieneError Then
|
||||
ObjOS.Commit()
|
||||
Else
|
||||
ObjOS.RollBack()
|
||||
End If
|
||||
ObjOS.Dispose()
|
||||
|
||||
Dim CorreoAsignado As String = GlobalDTUsuarios(DdlTecnicoAsignar.SelectedValue.ToEntero).Rows(0)("Correo").ToString
|
||||
If Not TieneError And CorreoAsignado.Trim.Length > 0 AndAlso DdlTecnicoAsignar.SelectedValue.ToEntero > 0 Then
|
||||
CorreoAsignado = GlobalDTUsuarios(DdlTecnicoAsignar.SelectedValue.ToEntero).Rows(0)("Correo").ToString
|
||||
MandaCorreOS(CveOS, CorreoAsignado)
|
||||
End If
|
||||
|
||||
'If Not TieneError And TxtEmail.Text.Trim.Length > 0 AndAlso DdlTecnicoAsignar.SelectedValue.ToEntero > 0 Then
|
||||
' MandaCorreOS(CveOS, TxtEmail.Text, True)
|
||||
'End If
|
||||
|
||||
If Not TieneError Then
|
||||
|
||||
ConsultaOrdenesServiciosNoAsignadas()
|
||||
CargaOrdenesServiciosNoAsignadas()
|
||||
|
||||
If TipoAccion = OSModalTipoAccion.Asignacion Then
|
||||
Alert("Orden asignada correctamente.")
|
||||
ElseIf TipoAccion = OSModalTipoAccion.Agregar Then
|
||||
Alert("Orden Guardada correctamente.")
|
||||
ElseIf TipoAccion = OSModalTipoAccion.Actualizacion Then
|
||||
Alert("Orden actualizada correctamente.")
|
||||
End If
|
||||
|
||||
RegistraScript("$('#DVModalOS').modal('hide');Calendario();")
|
||||
|
||||
End If
|
||||
|
||||
End Sub
|
||||
|
||||
Private Sub MandaCorreOS(CveOS As Integer, CorreoUsuarioAsignado As String, Optional EsCliente As Boolean = False)
|
||||
|
||||
Dim ObjOS As New ClsOS()
|
||||
Dim params As New List(Of ReportParameter)
|
||||
Dim CveFolio = ""
|
||||
|
||||
Dim TmpDTOS = New DataTable
|
||||
TmpDTOS.Columns.Add("CveOSDetalle", GetType(Integer))
|
||||
|
||||
TmpDTOS.Columns.Add("CveClasificacion", GetType(Integer))
|
||||
TmpDTOS.Columns.Add("Clasificacion", GetType(String))
|
||||
TmpDTOS.Columns.Add("CvePS", GetType(Integer))
|
||||
TmpDTOS.Columns.Add("CveUM", GetType(Integer))
|
||||
TmpDTOS.Columns.Add("UM", GetType(String))
|
||||
TmpDTOS.Columns.Add("Cantidad", GetType(Integer))
|
||||
TmpDTOS.Columns.Add("PS", GetType(String))
|
||||
TmpDTOS.Columns.Add("Especificaciones", GetType(String))
|
||||
TmpDTOS.Columns.Add("Materiales", GetType(String))
|
||||
TmpDTOS.Columns.Add("CveCuentaEquipo", GetType(Integer))
|
||||
TmpDTOS.Columns.Add("Observaciones", GetType(String))
|
||||
TmpDTOS.Columns.Add("FechaAtencion", GetType(String))
|
||||
TmpDTOS.Columns.Add("CveUsuarioAtendio", GetType(Integer))
|
||||
TmpDTOS.Columns.Add("UsuarioAtendio", GetType(String))
|
||||
TmpDTOS.Columns.Add("FechaTermino", GetType(String))
|
||||
TmpDTOS.Columns.Add("FechaEntrega", GetType(String))
|
||||
TmpDTOS.Columns.Add("CveUsuarioEntrego", GetType(Integer))
|
||||
TmpDTOS.Columns.Add("UsuarioEntrego", GetType(String))
|
||||
TmpDTOS.Columns.Add("SeFacturara", GetType(String))
|
||||
TmpDTOS.Columns.Add("SeSuperviso", GetType(String))
|
||||
TmpDTOS.Columns.Add("Estatus", GetType(String))
|
||||
TmpDTOS.Columns.Add("Archivo", GetType(String))
|
||||
TmpDTOS.Columns.Add("ComentarioTecnico", GetType(String))
|
||||
|
||||
|
||||
Dim TmpDTMaterialesOS = New DataTable
|
||||
TmpDTMaterialesOS.Columns.Add("CveOSDetalle", GetType(Integer))
|
||||
TmpDTMaterialesOS.Columns.Add("CveConsecutivo", GetType(Integer))
|
||||
TmpDTMaterialesOS.Columns.Add("CveConsecutivoDetalle", GetType(Integer))
|
||||
TmpDTMaterialesOS.Columns.Add("CveMaterial", GetType(Integer))
|
||||
TmpDTMaterialesOS.Columns.Add("Cantidad", GetType(Integer))
|
||||
TmpDTMaterialesOS.Columns.Add("CveClasificacion", GetType(Integer))
|
||||
TmpDTMaterialesOS.Columns.Add("CvePS", GetType(String))
|
||||
TmpDTMaterialesOS.Columns.Add("CveUM", GetType(String))
|
||||
TmpDTMaterialesOS.Columns.Add("Clasificacion", GetType(String))
|
||||
TmpDTMaterialesOS.Columns.Add("PS", GetType(String))
|
||||
TmpDTMaterialesOS.Columns.Add("UM", GetType(String))
|
||||
|
||||
Dim FolioOS As String = ""
|
||||
|
||||
Dim RutaReporte As New System.IO.FileInfo(String.Format("{0}Formatos/OrdenServicio.rdlc", UsuarioActual.Empresa.Ruta))
|
||||
|
||||
If ObjOS.GetOrdenesServicios(CveOS, -1, -1, -1, -1, UsuarioActual.CveEmpresa) Then
|
||||
If ObjOS.DtResultados.Rows.Count > 0 Then
|
||||
|
||||
Dim dtOS As DataTable = ObjOS.DtResultados
|
||||
Dim dr As DataRow = dtOS.Rows(0)
|
||||
params.Add(New ReportParameter("Cliente", dr("Cliente").ToString))
|
||||
params.Add(New ReportParameter("Solicito", dr("PersonaSolicito").ToString))
|
||||
params.Add(New ReportParameter("Descripcion", dr("Descripcion").ToString))
|
||||
params.Add(New ReportParameter("Recibio", UsuarioActual.Nombre))
|
||||
params.Add(New ReportParameter("FechaRecibido", dr("FechaRecepcion").ToString.ToDate.ToString("dd/MM/yyyy")))
|
||||
params.Add(New ReportParameter("FolioOS", dr("Folio").ToString))
|
||||
params.Add(New ReportParameter("ClienteTelefono", dr("Telefono").ToString))
|
||||
params.Add(New ReportParameter("ClienteCalle", dr("Direccion").ToString))
|
||||
params.Add(New ReportParameter("ClienteColonia", dr("Colonia").ToString))
|
||||
params.Add(New ReportParameter("ClienteCiudad", dr("Ciudad").ToString))
|
||||
params.Add(New ReportParameter("ClienteEstado", dr("Estado").ToString))
|
||||
CveFolio = dr("Folio").ToString
|
||||
|
||||
'If RutaReporte.Exists Then
|
||||
params.Add(New ReportParameter("NoDeCliente", dr("CveCliente").ToString))
|
||||
params.Add(New ReportParameter("RFC", dr("RFC").ToString))
|
||||
params.Add(New ReportParameter("Vendedor", " "))
|
||||
params.Add(New ReportParameter("Correo", dr("Correo").ToString))
|
||||
params.Add(New ReportParameter("CodigoDeServicio", dr("CveOS").ToString))
|
||||
params.Add(New ReportParameter("Sucursal", dr("SubProyecto").ToString))
|
||||
params.Add(New ReportParameter("TipoServicio", dr("TipoServicio").ToString))
|
||||
params.Add(New ReportParameter("TipoEquipo", dr("TipoEquipo").ToString))
|
||||
'params.Add(New ReportParameter("Descripcion", dr("Descripcion").ToString))
|
||||
params.Add(New ReportParameter("Copia", "Copia: Original"))
|
||||
params.Add(New ReportParameter("Equipo", dr("Equipo").ToString))
|
||||
|
||||
params.Add(New ReportParameter("DireccionOS", dr("DireccionOS").ToString))
|
||||
params.Add(New ReportParameter("Telefono", dr("Telefono").ToString))
|
||||
params.Add(New ReportParameter("CorreoOS", dr("CorreoOS").ToString))
|
||||
|
||||
params.Add(New ReportParameter("ModeloMarca", dr("ModeloMarca").ToString))
|
||||
params.Add(New ReportParameter("Año", dr("Año").ToString))
|
||||
params.Add(New ReportParameter("TelefonoContacto", dr("TelefonoContacto").ToString))
|
||||
|
||||
params.Add(New ReportParameter("FechaImpresion", NowADS().ToString("dd/MM/yyyy")))
|
||||
params.Add(New ReportParameter("UsuarioImprimio", UsuarioActual.Usuario))
|
||||
params.Add(New ReportParameter("Condiciones", dr("Condiciones").ToString))
|
||||
params.Add(New ReportParameter("FechaAtencion", If(dr("FechaInicio").ToString.Length > 0, dr("FechaInicio").ToString.ToDate.ToString("dd/MM/yyyy hh:mm tt"), "")))
|
||||
params.Add(New ReportParameter("TecnicoAsignado", dr("UsuarioAtendio").ToString))
|
||||
|
||||
'End If
|
||||
|
||||
End If
|
||||
End If
|
||||
|
||||
Dim Imagen As New System.IO.FileInfo($"{UsuarioActual.Empresa.Ruta}/Logo.png")
|
||||
|
||||
If Not RutaReporte.Exists Then
|
||||
|
||||
RutaReporte = New System.IO.FileInfo(String.Format("{0}Empresas\Grales\Formatos\OrdenServicio.rdlc", ModExtensiones.DirectorioBaseEmpresas))
|
||||
|
||||
params.Add(New ReportParameter("NombreEmpresa", UsuarioActual.Empresa.Empresa))
|
||||
params.Add(New ReportParameter("UsuarioImprimio", UsuarioActual.Nombre))
|
||||
params.Add(New ReportParameter("FechaImpresion", NowADS().ToDateTime.ToShortDateString))
|
||||
params.Add(New ReportParameter("LogoPath", If(Imagen.Exists, $"file://{Imagen.FullName}", "")))
|
||||
|
||||
End If
|
||||
|
||||
|
||||
If ObjOS.GetOrdenesServiciosDetalle(CveOS) Then
|
||||
TmpDTMaterialesOS = ObjOS.DtResultados
|
||||
End If
|
||||
|
||||
Dim lrds As New List(Of ReportDataSource)
|
||||
Dim rds As New ReportDataSource With {.Name = "DataSet2", .Value = TmpDTMaterialesOS}
|
||||
Dim rds2 As New ReportDataSource With {.Name = "DataSet1", .Value = TmpDTMaterialesOS}
|
||||
|
||||
lrds.Add(rds)
|
||||
lrds.Add(rds2)
|
||||
ObjOS.Dispose()
|
||||
|
||||
Dim ReporteByte As Byte() = StreamPDF(RutaReporte.FullName, lrds, params, NombreArchivo:=String.Format("OrdenServicio-{0}", CveFolio))
|
||||
|
||||
If ReporteByte IsNot Nothing Then
|
||||
Try
|
||||
ViewState("Para") = CorreoUsuarioAsignado
|
||||
ViewState("ArrayCC") = ""
|
||||
ViewState("Asunto") = "Asinación Orden de Servicio"
|
||||
ViewState("FolioOSMail") = FolioOS
|
||||
ViewState("Body") = "Asinación Orden de Servicio"
|
||||
|
||||
|
||||
ViewState("bytesOS") = ReporteByte
|
||||
Dim Hilo As New Threading.Thread(AddressOf SendmailOS)
|
||||
Hilo.Start()
|
||||
Catch ex As Exception
|
||||
GuardaLogAD($"Error al enviar correo de OS {ex.StackTrace}")
|
||||
End Try
|
||||
End If
|
||||
|
||||
End Sub
|
||||
|
||||
Private Sub SendmailOS()
|
||||
|
||||
Dim Asunto, Para, ArrayCC, Body As String
|
||||
Asunto = If(IsNothing(ViewState("Asunto")), "", ViewState("Asunto").ToString)
|
||||
Para = If(IsNothing(ViewState("Para")), "", ViewState("Para").ToString)
|
||||
ArrayCC = If(IsNothing(ViewState("ArrayCC")), "", ViewState("ArrayCC").ToString)
|
||||
|
||||
Body = If(IsNothing(ViewState("Body")), "", ViewState("Body").ToString)
|
||||
|
||||
|
||||
Dim Mail As New ClsSisMail()
|
||||
Dim LSRutasMail As New List(Of ClsSisMail.ArchivoMail)
|
||||
LSRutasMail.Add(New ClsSisMail.ArchivoMail With {.NombreArchivo = $"OS_{ViewState("FolioOSMail") }.pdf", .ArchivoBinario = DirectCast(ViewState("bytesOS"), Byte())})
|
||||
Mail.SendMail(ClsPaginas.EmpresaNotificaciones, Para, Asunto, Body, ArrayCC, LSRutasMail)
|
||||
|
||||
End Sub
|
||||
|
||||
Private Sub GetCargaTiposOrden()
|
||||
Dim ObjOS As New ClsOS
|
||||
|
||||
@@ -1113,120 +735,5 @@ Partial Class OS_RepServiciosMedicos
|
||||
|
||||
End Sub
|
||||
|
||||
Protected Sub DdlTecnicoAsignar_SelectedIndexChanged(sender As Object, e As EventArgs)
|
||||
|
||||
|
||||
If TipoAccion = OSModalTipoAccion.Asignacion Then
|
||||
|
||||
|
||||
'DdlTecnicoAsignar.Visible = True
|
||||
'RfvDdlTecnicoAsignar.Visible = True
|
||||
'VCERfvDdlTecnicoAsignar.Visible = True
|
||||
|
||||
'RfvTxtModalFechaOS.Visible = True
|
||||
'VceRfvTxtModalFechaOS.Enabled = True
|
||||
ElseIf TipoAccion = OSModalTipoAccion.Agregar Or TipoAccion = OSModalTipoAccion.Actualizacion Then
|
||||
|
||||
'DdlTecnicoAsignar.Visible = False
|
||||
'RfvDdlTecnicoAsignar.Visible = False
|
||||
' VCERfvDdlTecnicoAsignar.Visible = False
|
||||
|
||||
'RfvTxtModalFechaOS.Visible = False
|
||||
'VceRfvTxtModalFechaOS.Enabled = False
|
||||
|
||||
End If
|
||||
|
||||
UpModalOS.Update()
|
||||
|
||||
End Sub
|
||||
|
||||
Private Sub CargaClientePublicoGeneral()
|
||||
|
||||
Dim ObjCliente As New ClsClientes()
|
||||
|
||||
If ObjCliente.GetClientes(-1, "PUBLICO EN GENERAL", "-1", "-1", "-1", "-1", "-1", -1, UsuarioActual.CveEmpresa, -1) Then
|
||||
|
||||
If ObjCliente.DtResultados.Rows.Count > 0 Then
|
||||
Me.CveClientePublicoGeneral = ObjCliente.CveCliente
|
||||
Me.NombreClientePublicoGeneral = ObjCliente.Nombre
|
||||
End If
|
||||
End If
|
||||
ObjCliente.Dispose()
|
||||
|
||||
End Sub
|
||||
|
||||
|
||||
Protected Sub DdlTecnicoAsignar_SelectedIndexChanged1(sender As Object, e As EventArgs)
|
||||
ValidaHorarioNoOperativo()
|
||||
End Sub
|
||||
|
||||
Protected Sub LnkValidaHorarioNoOperativo_Click(sender As Object, e As EventArgs)
|
||||
ValidaHorarioNoOperativo()
|
||||
End Sub
|
||||
|
||||
Private Sub ValidaHorarioNoOperativo()
|
||||
If DdlTecnicoAsignar.SelectedValue.ToEntero > 0 Then
|
||||
|
||||
Dim objOS As New ClsOS
|
||||
Dim DTHorarios As New DataTable
|
||||
|
||||
If objOS.GetOrdenesServiciosTecnicoHorarioNoOperativo(DdlTecnicoAsignar.SelectedValue.ToEntero, UsuarioActual.CveEmpresa) Then
|
||||
DTHorarios = objOS.DtResultados
|
||||
End If
|
||||
objOS.Dispose()
|
||||
|
||||
If DTHorarios IsNot Nothing AndAlso DTHorarios.Rows.Count > 0 Then
|
||||
|
||||
Dim HoraInicio As TimeSpan = DTHorarios.Rows(0)("HoraInicio").ToString.ToDate.TimeOfDay
|
||||
Dim HoraFin As TimeSpan = DTHorarios.Rows(0)("HoraFin").ToString.ToDate.TimeOfDay
|
||||
Dim HoraAsignacion As TimeSpan = TxtFechaOS.Text.ToDate.TimeOfDay
|
||||
|
||||
If HoraAsignacion >= HoraInicio And HoraAsignacion <= HoraFin Then
|
||||
Alert($"La hora especificada esta dentro del horario no operativo del Técnico {HoraInicio.ToString()} a {HoraFin.ToString()} .", TipoMensaje.MsgAdvertencia)
|
||||
End If
|
||||
End If
|
||||
'ViewState("Validando") = Nothing
|
||||
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Protected Sub LnkCancelarOrden_Click(sender As Object, e As EventArgs)
|
||||
|
||||
RegistraScript($"$('#{TxtModalCancelarOrdenMotivo.ClientID}').focus();;$('#DVModalCancelacionOrden').modal('show');")
|
||||
|
||||
TxtModalCancelarOrdenMotivo.Focus()
|
||||
TxtModalCancelarOrdenMotivo.Text = ""
|
||||
UpmodalCacelaOrden.Update()
|
||||
|
||||
End Sub
|
||||
|
||||
|
||||
|
||||
Protected Sub LnkmodalCancelarORdenServicio_Click(sender As Object, e As EventArgs)
|
||||
|
||||
Dim TieneError As Boolean = True
|
||||
Dim CveOS As Integer = HFCveOS.Value.ToEntero
|
||||
Dim objOS As New ClsOS
|
||||
Dim ObjEventoBitacora As New ClsOIEventos(objOS.IniciaTransacSQL)
|
||||
If objOS.UpdateOrdenesServiciosFinaliza(CveOS, -1, -1, UsuarioActual.CveEmpresa, Opcion:=2) Then 'Opcion:=2 Es para cancelar
|
||||
If ObjEventoBitacora.AddEventoBitacora($"Motivo Cancelación: {TxtModalCancelarOrdenMotivo.Text.Trim}", "", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, -1, -1, -1, CveOS, -1, -1, -1, -1) Then
|
||||
TieneError = False
|
||||
End If
|
||||
End If
|
||||
|
||||
If TieneError Then
|
||||
objOS.RollBack()
|
||||
Else
|
||||
objOS.Commit()
|
||||
End If
|
||||
|
||||
objOS.Dispose()
|
||||
|
||||
|
||||
If Not TieneError Then
|
||||
Alert("Orden Cancelada Correctamente", TipoMensaje.MsgInformacion, "location.reload(true);")
|
||||
RegistraScript("$('#DVModalCancelacionOrden').modal('hide');")
|
||||
RegistraScript("$('#DVModalFinalizarOrden').modal('hide');")
|
||||
End If
|
||||
End Sub
|
||||
End Class
|
||||
|
||||
@@ -722,7 +722,6 @@
|
||||
let mes = parseInt($('#<%=HidCurrentMonth.ClientID%>').val());
|
||||
let anio = parseInt($('#<%=HidCurrentYear.ClientID%>').val());
|
||||
|
||||
|
||||
Calendario(mes,anio);
|
||||
|
||||
});
|
||||
|
||||
@@ -31,10 +31,10 @@ Partial Class RepContratosCalendario
|
||||
|
||||
Public Property CveContrato As Integer
|
||||
Get
|
||||
Return IfNull(ViewState("CveContrato"), "").ToString.ToEntero
|
||||
Return HdnCveContrato.Value.ToEntero
|
||||
End Get
|
||||
Set(value As Integer)
|
||||
ViewState("CveContrato") = value
|
||||
HdnCveContrato.Value = value.ToString
|
||||
End Set
|
||||
End Property
|
||||
|
||||
@@ -244,7 +244,8 @@ Partial Class RepContratosCalendario
|
||||
DdlChofer.SelectedValueExist(GvRow.DataKey("CveChofer"))
|
||||
DdlChofer2.SelectedValueExist(GvRow.DataKey("CveChofer2"))
|
||||
DdlEstatusContrato.SelectedValue = GvRow.DataKey("CveContratosEstatus")
|
||||
|
||||
CveContrato = GvRow.DataKey("CveContrato").ToEntero
|
||||
|
||||
UpModal.Update()
|
||||
RegistraScript("$('#ModalActualizar').modal('show');")
|
||||
End Sub
|
||||
|
||||
@@ -1353,6 +1353,7 @@ Partial Class PV
|
||||
|
||||
DdlMarcaPS.DataSource = GlobalDTGralMarcas(UsuarioActual.CveEmpresa)
|
||||
DdlMarcaPS.DataBind()
|
||||
DdlMarcaPSAjuste.DataSource = GlobalDTGralMarcas(UsuarioActual.CveEmpresa)
|
||||
DdlMarcaPSAjuste.DataBind()
|
||||
DdlMarcaUsado.DataBind()
|
||||
|
||||
@@ -3344,7 +3345,6 @@ Partial Class PV
|
||||
End If
|
||||
ObjVentas.Dispose()
|
||||
|
||||
|
||||
Dim ObjInventarios As New ClsInventarios
|
||||
Dim PU As Decimal = 0
|
||||
For Each dr As DataRow In TmpDT.Rows
|
||||
|
||||
@@ -68,6 +68,44 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="portlet-body" style="display: none">
|
||||
<div class="row">
|
||||
<div class="col-md-1 truncate">
|
||||
Fecha Inicio:
|
||||
</div>
|
||||
<div class="col-md-1" style="min-width: 115px">
|
||||
<div class="input-group input-sm input-small date date-picker " data-date-format="dd/mm/yyyy" style="width: 100px !important; padding: 0px;">
|
||||
<asp:TextBox Width="80px" ID="txtFechaI" runat="server" CssClass="form-control" CausesValidation="true" MaxLength="10"></asp:TextBox>
|
||||
<span class="input-group-btn ">
|
||||
<asp:LinkButton ID="imgCalendario" class="btn default " Text="<i class='fa fa-calendar'></i>" runat="server"></asp:LinkButton>
|
||||
</span>
|
||||
</div>
|
||||
<ajax:MaskedEditExtender ID="MEEFechaI" runat="server" TargetControlID="txtFechaI" Mask="99/99/9999" MaskType="Date" DisplayMoney="Left" AcceptNegative="Left"></ajax:MaskedEditExtender>
|
||||
<ajax:CalendarExtender runat="server" ID="Calendario" TargetControlID="txtFechaI" PopupButtonID="ImgCalendario" PopupPosition="BottomRight" Enabled="True"></ajax:CalendarExtender>
|
||||
<asp:RequiredFieldValidator ID="rfvFechaI" runat="server" ControlToValidate="txtFechaI" Display="None" ErrorMessage="El campo <b>''Fecha Inicial''</b> es requerido por la aplicación, por favor ingrese una fecha." ValidationGroup="Valida"></asp:RequiredFieldValidator>
|
||||
<asp:CompareValidator ID="cvFechaI" runat="server" ControlToValidate="txtFechaI" Display="None" ErrorMessage="El campo <b>''Fecha Inicial''</b> no tienes el formato correcto, por favor intente de nuevo con el siguiente formato: (dd/mm/yyyy)." Operator="DataTypeCheck" Type="Date" ValidationGroup="Valida"></asp:CompareValidator>
|
||||
<ajax:ValidatorCalloutExtender ID="vcoFfvFI" runat="server" HighlightCssClass="vco" TargetControlID="rfvFechaI" Width="350px"></ajax:ValidatorCalloutExtender>
|
||||
<ajax:ValidatorCalloutExtender ID="vcoCvFI" runat="server" HighlightCssClass="vco" TargetControlID="cvFechaI" Width="350px"></ajax:ValidatorCalloutExtender>
|
||||
</div>
|
||||
<div class="col-md-1 truncate">
|
||||
Fecha Fin:
|
||||
</div>
|
||||
<div class="col-md-1" style="min-width: 115px">
|
||||
<div class="input-group input-sm input-small date date-picker " data-date-format="dd/mm/yyyy" style="width: 100px !important; padding: 0px;">
|
||||
<asp:TextBox Width="80px" ID="txtFechaF" runat="server" CssClass="form-control" CausesValidation="true" MaxLength="10"></asp:TextBox>
|
||||
<span class="input-group-btn ">
|
||||
<asp:LinkButton ID="imgCalendarioF" class="btn default " Text="<i class='fa fa-calendar'></i>" runat="server"></asp:LinkButton>
|
||||
</span>
|
||||
</div>
|
||||
<ajax:MaskedEditExtender ID="MEEFechaF" runat="server" TargetControlID="txtFechaF" Mask="99/99/9999" MaskType="Date" DisplayMoney="Left" AcceptNegative="Left"></ajax:MaskedEditExtender>
|
||||
<ajax:CalendarExtender runat="server" ID="Calendario2" TargetControlID="txtFechaF" PopupButtonID="imgCalendarioF" PopupPosition="BottomRight" Enabled="True"></ajax:CalendarExtender>
|
||||
<asp:RequiredFieldValidator ID="rfvFechaF" runat="server" ControlToValidate="txtFechaF" Display="None" ErrorMessage="El campo <b>''Fecha Final''</b> es requerido por la aplicación, por favor ingrese una fecha." ValidationGroup="Valida"></asp:RequiredFieldValidator>
|
||||
<asp:CompareValidator ID="cvFechaF" runat="server" ControlToValidate="txtFechaF" Display="None" ErrorMessage="El campo <b>''Fecha Final''</b> no tienes el formato correcto, por favor intente de nuevo con el siguiente formato: (dd/mm/yyyy)." Operator="DataTypeCheck" Type="Date" ValidationGroup="Valida"></asp:CompareValidator>
|
||||
<ajax:ValidatorCalloutExtender ID="vcoRfvFF" runat="server" HighlightCssClass="vco" TargetControlID="rfvFechaF" Width="350px"></ajax:ValidatorCalloutExtender>
|
||||
<ajax:ValidatorCalloutExtender ID="vcoCvFF" runat="server" HighlightCssClass="vco" TargetControlID="cvFechaF" Width="350px"></ajax:ValidatorCalloutExtender>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</ContentTemplate>
|
||||
</asp:UpdatePanel>
|
||||
@@ -82,12 +120,13 @@
|
||||
<asp:GridView ID="GvDatos" runat="server" AutoGenerateColumns="False" EmptyDataText="No se encontraron Ventas con los filtros especificados"
|
||||
CssClass="table table-striped table-advance table-hover Widthall ScrollAD" DataKeyNames="CveCliente,CveVendedor,CveSubProyecto,CvePS,CveUnidadMedida,Cantidad,PU,CveVentaDetalle,GastosEnvio" data-sort="true" GridLines="None" Width="99%">
|
||||
<Columns>
|
||||
<asp:BoundField HeaderText="Cliente" DataField="NombreComercial" ItemStyle-Width="30%" />
|
||||
<asp:BoundField HeaderText="SerieFolio" DataField="SerieFolio" ItemStyle-Width="10%" />
|
||||
<asp:BoundField HeaderText="Cliente" DataField="NombreComercial" ItemStyle-Width="25%" />
|
||||
<asp:BoundField HeaderText="Dirección" DataField="DireccionEnvio" ItemStyle-Width="25%" />
|
||||
<asp:BoundField HeaderText="SerieFolio" DataField="SerieFolio" ItemStyle-Width="5%" />
|
||||
<asp:BoundField HeaderText="Fecha" DataField="Fecha" DataFormatString="{0:d}" ItemStyle-Width="7.5%" />
|
||||
<asp:BoundField HeaderText="Cantidad" DataField="Cantidad" DataFormatString="{0:#,###.##}" ItemStyle-HorizontalAlign="Right" ItemStyle-Width="5%" />
|
||||
<asp:BoundField HeaderText="Producto" DataField="CodigoPS" ItemStyle-Width="30%" />
|
||||
<asp:BoundField HeaderText="Vendedor" DataField="Vendedor" ItemStyle-Width="20%" />
|
||||
<asp:BoundField HeaderText="Cantidad" DataField="Cantidad" DataFormatString="{0:#,###.##}" ItemStyle-HorizontalAlign="Right" ItemStyle-Width="2.5%" />
|
||||
<asp:BoundField HeaderText="Producto" DataField="CodigoPS" ItemStyle-Width="25%" />
|
||||
<asp:BoundField HeaderText="Vendedor" DataField="Vendedor" ItemStyle-Width="15%" />
|
||||
|
||||
<asp:TemplateField ItemStyle-Width="2.5%">
|
||||
<ItemTemplate>
|
||||
|
||||
@@ -15,6 +15,9 @@ Partial Class Ventas_RepPedidosSTF
|
||||
|
||||
Private Sub CargaCombos()
|
||||
|
||||
txtFechaI.Text = NowADS.FirstDayOfMonth.ToShortDateString
|
||||
txtFechaF.Text = NowADS.LastDayOfMonth.ToShortDateString
|
||||
|
||||
CargarCentrosDeCosto(DdlProyecto, DdlSubProyecto, LblProyecto, LblSubProyecto, divProyecto:=DivProyecto)
|
||||
|
||||
'Vendedor
|
||||
@@ -37,6 +40,8 @@ Partial Class Ventas_RepPedidosSTF
|
||||
|
||||
If TabG.ActiveTabIndex = 1 Then ' entregados
|
||||
Opcion = 2
|
||||
FechaInicio = txtFechaI.Text.ToDate
|
||||
FechaFin = txtFechaF.Text.ToDate
|
||||
Dim ObjVentas As New ClsVentas
|
||||
If ObjVentas.GetRepPedidosSTF(DdlSubProyecto.SelectedValue.ToEntero, DdlVendedor.SelectedValue.ToEntero, UsuarioActual.CveEmpresa, Opcion, FechaInicio, FechaFin) Then
|
||||
GvE.DataSource = ObjVentas.DtResultados
|
||||
|
||||
Reference in New Issue
Block a user