This commit is contained in:
2024-07-12 17:36:28 -07:00
24 changed files with 1121 additions and 832 deletions

View File

@@ -1159,10 +1159,7 @@ Public Class ClsBancos
End If
End If
Mensaje = ObjTimbrado.MensajeErrorCFDI
GuardaLog(ObjTimbrado.MensajeErrorCFDI)
Timbre = Nothing
Else
GuardaLog(Mensaje)
End If

View File

@@ -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"

View File

@@ -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

View File

@@ -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

View File

@@ -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>

View File

@@ -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 = "";

Binary file not shown.

View File

@@ -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

View File

@@ -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

View File

@@ -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>

View File

@@ -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("&lt;br&gt;", "").Replace("&lt;", "").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("&lt;br&gt;", "").Replace("&lt;", "").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

View File

@@ -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%"

View File

@@ -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">

View File

@@ -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

View File

@@ -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>

View File

@@ -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

View File

@@ -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

View File

@@ -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">&times;</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();
}
}--%>
}

View File

@@ -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

View File

@@ -722,7 +722,6 @@
let mes = parseInt($('#<%=HidCurrentMonth.ClientID%>').val());
let anio = parseInt($('#<%=HidCurrentYear.ClientID%>').val());
Calendario(mes,anio);
});

View File

@@ -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

View File

@@ -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

View File

@@ -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>

View File

@@ -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