diff --git a/App_Code/ClsPaginas.vb b/App_Code/ClsPaginas.vb index e26c2b4f3..46f8dd8db 100644 --- a/App_Code/ClsPaginas.vb +++ b/App_Code/ClsPaginas.vb @@ -9325,6 +9325,7 @@ Public Class ClsPaginas PaginaDict.Add("/Ventas/RepCancelacionesVentas.aspx".ToUpper(), 1325) PaginaDict.Add("/Ventas/RepLineasAdicionales.aspx".ToUpper(), 1331) PaginaDict.Add("/Ventas/RepLineasAdicionales.aspx?OP=OP".ToUpper(), 1332) + PaginaDict.Add("/Ventas/FacturacionAcarreos.aspx".ToUpper(), 774) #End Region #Region "Varios" 'Portal Cliente/Proveedor diff --git a/App_Code/ClsVentas.vb b/App_Code/ClsVentas.vb index 2f36c6a29..0ecf1a268 100644 --- a/App_Code/ClsVentas.vb +++ b/App_Code/ClsVentas.vb @@ -5829,6 +5829,115 @@ Public Class ClsVentas Return Retorno End Function + Public Function AddFacturacionAcarreos(Sucursal As String, RFCCliente As String, Cantidad As Decimal, PSGeneral As String, DireccionOrigen As String, DireccionDestino As String, FechaSalida As DateTime, FechaLlegada As DateTime, + Camion As String, Chofer As String, ConfigAutoTransporte As String, CamionRemolque1 As String, CamionRemolque2 As String, Distancia As Decimal, CveEmpresa As Integer) As String + Dim Retorno As String = "" + DataAdapter("PA_Vta_FacturacionAcarreosAdd") + + With SqlAdapter.SelectCommand.Parameters + .Add("@SubProyecto", SqlDbType.VarChar).Value = Sucursal + .Add("@RFCCliente", SqlDbType.VarChar).Value = RFCCliente + .Add("@Cantidad", SqlDbType.Decimal).Value = Cantidad + .Add("@PSGeneral", SqlDbType.VarChar).Value = PSGeneral + .Add("@DireccionOrigen", SqlDbType.VarChar).Value = DireccionOrigen + .Add("@DireccionDestino", SqlDbType.VarChar).Value = DireccionDestino + .Add("@FechaSalida", SqlDbType.DateTime).Value = FechaSalida + .Add("@FechaLlegada", SqlDbType.DateTime).Value = FechaLlegada + .Add("@Camion", SqlDbType.VarChar).Value = Camion + .Add("@Chofer", SqlDbType.VarChar).Value = Chofer + .Add("@ConfigAutoTransporte", SqlDbType.VarChar).Value = ConfigAutoTransporte + .Add("@CamionRemolque1", SqlDbType.VarChar).Value = CamionRemolque1 + .Add("@CamionRemolque2", SqlDbType.VarChar).Value = CamionRemolque2 + .Add("@Distancia", SqlDbType.Decimal).Value = Distancia + .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa + .Add("@ErrorMSG", SqlDbType.VarChar, 300).Direction = ParameterDirection.Output + End With + + Try + SqlAdapter.Fill(Data) + Retorno = SqlAdapter.SelectCommand.Parameters("@ErrorMSG").Value.ToString + Catch ex As Exception + OnError("Ocurrió un error al guardar los datos de facturación.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo) + End Try + + Return Retorno + End Function + Public Function GetFacturacionAcarreos(CveFacturacionAcarreo As Integer, CveCliente As Integer, CveSubProyecto As Integer, Estatus As Integer, CveEmpresa As Integer) As Boolean + + Dim Retorno As Boolean = False + DataAdapter("PA_Vta_FacturacionAcarreosGet") + With SqlAdapter.SelectCommand.Parameters + .Add("@CveFacturacionAcarreo", SqlDbType.Int).Value = CveFacturacionAcarreo + .Add("@CveCliente", SqlDbType.Int).Value = CveCliente + .Add("@CveSubProyecto", SqlDbType.Int).Value = CveSubProyecto + .Add("@Estatus", SqlDbType.Int).Value = Estatus + .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa + End With + Try + SqlAdapter.Fill(Data) + Retorno = True + Catch ex As Exception + OnError("Ocurrió un error al obtener los datos de facturación.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) + End Try + Return Retorno + + End Function + + Public Function UpdateFacturacionAcarreo(CveFacturacionAcarreo As Integer, CveVenta As Integer) As Boolean + + Dim Retorno As Boolean = False + DataAdapter("PA_Vta_FacturacionAcarreosUpdate") + With SqlAdapter.SelectCommand.Parameters + .Add("@CveFacturacionAcarreo", SqlDbType.Int).Value = CveFacturacionAcarreo + .Add("@CveVenta", SqlDbType.Int).Value = CveVenta + End With + Try + SqlAdapter.Fill(Data) + Retorno = True + Catch ex As Exception + OnError("Ocurrió un error al obtener los actualizar los datos de facturación.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) + End Try + Return Retorno + + End Function + + Public Function RemoveFacturacionAcarreo(CveFacturacionAcarreo As Integer, CveEmpresa As Integer) As Boolean + + Dim Retorno As Boolean = False + DataAdapter("PA_Vta_FacturacionAcarreosRemove") + With SqlAdapter.SelectCommand.Parameters + .Add("@CveFacturacionAcarreo", SqlDbType.Int).Value = CveFacturacionAcarreo + .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa + End With + Try + SqlAdapter.Fill(Data) + Retorno = True + Catch ex As Exception + OnError("Ocurrió un error al obtener los eliminar los datos de facturación.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) + End Try + Return Retorno + + End Function + + Public Function RemoveFacturacionAcarreos(CveFacturacionAcarreo As Integer, CveEmpresa As Integer) As Boolean + + Dim Retorno As Boolean = False + DataAdapter("PA_Vta_FacturacionAcarreosRemove") + With SqlAdapter.SelectCommand.Parameters + .Add("@CveFacturacionAcarreo", SqlDbType.Int).Value = CveFacturacionAcarreo + .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa + End With + Try + SqlAdapter.Fill(Data) + Retorno = True + Catch ex As Exception + OnError("Ocurrió un error al eliminar los datos de facturación.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) + End Try + Return Retorno + + End Function + + #Region "IDisposable Support" diff --git a/App_Code/Modelos.vb b/App_Code/Modelos.vb index d51456f8c..98e5608c7 100644 --- a/App_Code/Modelos.vb +++ b/App_Code/Modelos.vb @@ -811,6 +811,13 @@ Namespace Modelos End If End If + 'VALIDA QUE EL PRECIO DEBA SER MAYOR A CERO + If Me.CveFacturacionAcarreo > 0 AndAlso Me.DtDetalle.SUMD("PU") <= 0 Then + ErrorList.Add("El precio unitario debe ser mayor a cero.") + Retorno.Mensajes = ErrorList + Return Retorno + End If + If Me.CveCliente > 0 Or Me.CveEmpresaCRM > 0 Then If DtDetalle.Rows.Count > 0 Then @@ -831,6 +838,7 @@ Namespace Modelos Dim ObjEventos As New ClsOIEventos(ObjVentas.IniciaTransacSQL()) Dim ObjCGame As New ClsCGame(ObjVentas.IniciaTransacSQL()) Dim ObjDocCliente As New ClsEdocumentacion(ObjVentas.IniciaTransacSQL()) + Dim ObjGeneral As New ClsGenerales(ObjVentas.IniciaTransacSQL()) Dim ObjAcum As New ClsAcumuladores(ObjVentas.IniciaTransacSQL()) Dim ObjContPaq As ClsContPAQi = Nothing Dim MensajeAlert = New StringBuilder @@ -863,8 +871,17 @@ Namespace Modelos Next End If + Dim CveTimbreCartaPorte As Integer = -1 + GuardarVenta(Me, ObjVentas, ObjConta, ObjInventario, ObjContr, DtDetalle, Me.CveNCaVincular, ObjContPaq, ObjBancos, ObjOS, ObjEventos, ObjCGame, ObjClientes, ObjAcum:=ObjAcum, Resp:=Retorno, Modulo:=Modulo) + If ErrorList.Count = 0 AndAlso Me.EmitirCartaPorte AndAlso Me.TipoDocto = "Ing" Then + CveTimbreCartaPorte = GuardarCartaPorte(Me, ObjGeneral, ObjVentas) + If CveTimbreCartaPorte <= 0 Then + ErrorList.Add("Ocurrió un error al registrar la carta porte") + End If + End If + 'SI ES REFACTURACION Dim ObjNC As List(Of Object) = Nothing If ErrorList.Count = 0 Then @@ -1016,6 +1033,12 @@ Namespace Modelos End If End If + If CveFacturacionAcarreo > 0 AndAlso ErrorList.Count = 0 Then + If Not ObjVentas.UpdateFacturacionAcarreo(Me.CveFacturacionAcarreo, CveVenta) Then + ErrorList.Add("No se pudo actualizar los datos de facturación de acarreo") + End If + End If + If ErrorList.Count = 0 AndAlso Me.CveVenta > 0 AndAlso DtDocumentacionCliente IsNot Nothing Then ' si se cargó algun documento If DtDocumentacionCliente.FiltraParametros("RutaArchivo <> ''").Rows.Count > 0 Then @@ -1064,6 +1087,16 @@ Namespace Modelos Dim ObjTimbrado As New Timbrado 'DOCUMENTO ACTUAL If DebeTimbrar Then + If Me.EmitirCartaPorte AndAlso CveTimbreCartaPorte > 0 Then + Dim RespCartaPorte = Timbres.PreParaCartaPorteFactura(CveTimbreCartaPorte, UsuarioActual) + If Not RespCartaPorte.TieneError Then + Me.Timbre.Complementos.CartaPorte = RespCartaPorte.CartaPorte + Else + DebeTimbrar = False + Retorno.Mensajes.Add(RespCartaPorte.Mensaje) + End If + End If + SeTimbro = ObjTimbrado.TimbrarFactura(UsuarioActual, Me) 'NOTA DE CREDITO - REFACTURADA - CASO ESPECIAL, TIMBRADO E IMPRESION @@ -1132,7 +1165,7 @@ Namespace Modelos If SeTimbro Then Dim ArchivoXML = String.Format("{0}/XML/{1}/{2}.xml", UsuarioActual.Empresa.Ruta, Me.TipoDocto, Me.SerieFolio) If File.Exists(ArchivoXML) Then - MensajeAlert.AppendFormat("
", Encripta(String.Format("OP=FactVta&CVEVENTA={0}&EXT={1}&SERIEFOLIO={2}&TIPODOCTO={3}", CveVenta, "XML", Me.SerieFolio, Me.TipoDocto))) + MensajeAlert.AppendFormat("", Encripta(String.Format("OP=FactVta&CVEVENTA={0}&EXT={1}&SERIEFOLIO={2}&TIPODOCTO={3}", CveVenta, "XML", Me.SerieFolio, Me.TipoDocto))) End If End If @@ -1204,6 +1237,10 @@ Namespace Modelos MensajeAlert.AppendFormat("