Generar OC a partir de una cotizacion y modificar precios
This commit is contained in:
@@ -534,6 +534,18 @@ Partial Class OC
|
||||
End If
|
||||
End If
|
||||
|
||||
Dim DtOCGeneradas As DataTable = Nothing
|
||||
If ObjVentas.GetVentasCotizacionesOC(Me.CveVenta, -1, UsuarioActual.CveEmpresa) Then
|
||||
DtOCGeneradas = ObjVentas.DtResultados.Copy()
|
||||
End If
|
||||
|
||||
If DtOCGeneradas IsNot Nothing AndAlso DtOCGeneradas.Rows.Count > 0 Then
|
||||
ObjVentas.Dispose()
|
||||
BtnGuardar.Enabled = False
|
||||
Alert("Ya existe una OC con esta cotización", TipoMensaje.MsgAdvertencia)
|
||||
Exit Sub
|
||||
End If
|
||||
|
||||
CargaClasificacionesPopUp(CveCotizacion)
|
||||
ObjVentas.Dispose()
|
||||
End If
|
||||
@@ -971,6 +983,8 @@ Partial Class OC
|
||||
DtDetalle.Columns.Add("CveContratoDetalle", GetType(Integer))
|
||||
DtDetalle.Columns.Add("CantidadNoEditable", GetType(Double))
|
||||
|
||||
DtDetalle.Columns.Add("CveVentaDetalleCotizacion", GetType(Integer))
|
||||
|
||||
'DtDetalle.Columns.Add("CveOrdenCompraDetalle", GetType(Integer))
|
||||
|
||||
' DtDetalle.Columns.Add("ClasificacionOG", GetType(String))
|
||||
@@ -1040,6 +1054,10 @@ Partial Class OC
|
||||
dr("CveTipoGasto") = -1
|
||||
dr("CveClasificacionOG") = -1
|
||||
|
||||
If UsuarioActual.Empresa.Funcionalidad(583) = "1" Then
|
||||
dr("CveVentaDetalleCotizacion") = RowV("CveVentaDetalle")
|
||||
End If
|
||||
|
||||
DtDetalle.Rows.Add(dr)
|
||||
|
||||
Next
|
||||
@@ -2318,7 +2336,7 @@ Partial Class OC
|
||||
Dim OCBitacora As New ClsOIEventos(OC.IniciaTransacSQL())
|
||||
Dim ObjInventarios As New ClsInventarios(OC.IniciaTransacSQL())
|
||||
Dim ObjConta As New ClsContabilidad(OC.IniciaTransacSQL())
|
||||
|
||||
Dim ObjVentas As New ClsVentas(OC.IniciaTransacSQL())
|
||||
Dim Conta As ClsContPAQi = Nothing
|
||||
If (UsuarioActual.Empresa.UsaAC AndAlso VerificaPresupuesto) Or UsuarioActual.Empresa.Funcionalidad(200) = "1" Then
|
||||
Conta = New ClsContPAQi(UsuarioActual.Empresa)
|
||||
@@ -2361,7 +2379,12 @@ Partial Class OC
|
||||
CveOrdenCompraPadre = OC.CveOrdenCompra
|
||||
If CveOrdenCompraPadre > 0 Then
|
||||
For Each dr As DataRow In DtDetalle.Rows
|
||||
If Not OC.AddOrdenCompraDetalle(CveOrdenCompraPadre, dr("Cantidad").ToString.ToDouble(), dr("CveUnidadMedida").ToString.ToEntero, dr("CvePS").ToString.ToEntero, dr("Importe").ToString.ToDouble, dr("CveSubProyecto").ToString.ToEntero(), dr("CveActivoFijo").ToString.ToEntero, dr("Observacion").ToString, UsuarioActual.CveUsuario, Descuento:=dr("Descuento").ToString.ToDouble, IEPSPS:=dr("IEPSPS").ToString.ToDouble, IEPSPSIVA:=dr("IEPSPSIVA").ToString.ToDouble, IVA:=dr("IVA").ToString.ToDouble, RetIVA:=dr("RetIVA").ToString.ToDouble, RetISR:=dr("RetISR").ToString.ToDouble, Total:=dr("Total").ToString.ToDouble, CveContratoDetalle:=dr("CveContratoDetalle").ToString.ToEntero, IVAPorcentaje:=dr("IVAPorcentaje").ToString.ToDouble, RetIVAPorcentaje:=dr("RetIVAPorcentaje").ToString.ToDouble, RetISRPorcentaje:=dr("RetISRPorcentaje").ToString.ToDouble, IEPSPSPorcentaje:=dr("IEPSPSPorcentaje").ToString.ToDouble, IEPSPSIVAPorcentaje:=dr("IEPSPSIVAPorcentaje").ToString.ToDouble) Then
|
||||
If Not OC.AddOrdenCompraDetalle(CveOrdenCompraPadre, dr("Cantidad").ToString.ToDouble(), dr("CveUnidadMedida").ToString.ToEntero, dr("CvePS").ToString.ToEntero, dr("Importe").ToString.ToDouble,
|
||||
dr("CveSubProyecto").ToString.ToEntero(), dr("CveActivoFijo").ToString.ToEntero, dr("Observacion").ToString, UsuarioActual.CveUsuario, Descuento:=dr("Descuento").ToString.ToDouble,
|
||||
IEPSPS:=dr("IEPSPS").ToString.ToDouble, IEPSPSIVA:=dr("IEPSPSIVA").ToString.ToDouble, IVA:=dr("IVA").ToString.ToDouble, RetIVA:=dr("RetIVA").ToString.ToDouble,
|
||||
RetISR:=dr("RetISR").ToString.ToDouble, Total:=dr("Total").ToString.ToDouble, CveContratoDetalle:=dr("CveContratoDetalle").ToString.ToEntero, IVAPorcentaje:=dr("IVAPorcentaje").ToString.ToDouble,
|
||||
RetIVAPorcentaje:=dr("RetIVAPorcentaje").ToString.ToDouble, RetISRPorcentaje:=dr("RetISRPorcentaje").ToString.ToDouble, IEPSPSPorcentaje:=dr("IEPSPSPorcentaje").ToString.ToDouble,
|
||||
IEPSPSIVAPorcentaje:=dr("IEPSPSIVAPorcentaje").ToString.ToDouble) Then
|
||||
TieneError = True
|
||||
Exit For
|
||||
End If
|
||||
@@ -2435,11 +2458,20 @@ Partial Class OC
|
||||
|
||||
|
||||
For Each dr As DataRow In DtDetalle.Rows
|
||||
If Not OC.AddOrdenCompraDetalle(CveOrdenCompra, dr("Cantidad").ToString.ToDouble(), dr("CveUnidadMedida").ToString.ToEntero, dr("CvePS").ToString.ToEntero, dr("Importe").ToString.ToDouble, dr("CveSubProyecto").ToString.ToEntero(), dr("CveActivoFijo").ToString.ToEntero, dr("Observacion").ToString, UsuarioActual.CveUsuario, CvePresupuestoEgreso:=dr("CvePresupuestoEgreso").ToString.ToEntero, pCveOrdenCompraPadre:=CveOrdenCompraPadre, Descuento:=dr("Descuento").ToString.ToDouble, IEPSPS:=dr("IEPSPS").ToString.ToDouble, IEPSPSIVA:=dr("IEPSPSIVA").ToString.ToDouble, IVA:=dr("IVA").ToString.ToDouble, RetIVA:=dr("RetIVA").ToString.ToDouble, RetISR:=dr("RetISR").ToString.ToDouble, Total:=dr("Total").ToString.ToDouble, CveContratoDetalle:=dr("CveContratoDetalle").ToString.ToEntero, IVAPorcentaje:=dr("IVAPorcentaje").ToString.ToDouble, RetIVAPorcentaje:=dr("RetIVAPorcentaje").ToString.ToDouble, RetISRPorcentaje:=dr("RetISRPorcentaje").ToString.ToDouble, IEPSPSPorcentaje:=dr("IEPSPSPorcentaje").ToString.ToDouble, IEPSPSIVAPorcentaje:=dr("IEPSPSIVAPorcentaje").ToString.ToDouble) Then
|
||||
If Not OC.AddOrdenCompraDetalle(CveOrdenCompra, dr("Cantidad").ToString.ToDouble(), dr("CveUnidadMedida").ToString.ToEntero, dr("CvePS").ToString.ToEntero, dr("Importe").ToString.ToDouble, dr("CveSubProyecto").ToString.ToEntero(), dr("CveActivoFijo").ToString.ToEntero,
|
||||
dr("Observacion").ToString, UsuarioActual.CveUsuario, CvePresupuestoEgreso:=dr("CvePresupuestoEgreso").ToString.ToEntero, pCveOrdenCompraPadre:=CveOrdenCompraPadre, Descuento:=dr("Descuento").ToString.ToDouble, IEPSPS:=dr("IEPSPS").ToString.ToDouble,
|
||||
IEPSPSIVA:=dr("IEPSPSIVA").ToString.ToDouble, IVA:=dr("IVA").ToString.ToDouble, RetIVA:=dr("RetIVA").ToString.ToDouble, RetISR:=dr("RetISR").ToString.ToDouble, Total:=dr("Total").ToString.ToDouble, CveContratoDetalle:=dr("CveContratoDetalle").ToString.ToEntero,
|
||||
IVAPorcentaje:=dr("IVAPorcentaje").ToString.ToDouble, RetIVAPorcentaje:=dr("RetIVAPorcentaje").ToString.ToDouble, RetISRPorcentaje:=dr("RetISRPorcentaje").ToString.ToDouble, IEPSPSPorcentaje:=dr("IEPSPSPorcentaje").ToString.ToDouble,
|
||||
IEPSPSIVAPorcentaje:=dr("IEPSPSIVAPorcentaje").ToString.ToDouble, CveVentaDetalleCotizacion:=dr("CveVentaDetalleCotizacion").ToString().ToEntero()) Then
|
||||
TieneError = True
|
||||
Exit For
|
||||
End If
|
||||
Next
|
||||
|
||||
If Not TieneError AndAlso UsuarioActual.Empresa.Funcionalidad(583) = "1" Then
|
||||
TieneError = Not ActualizarCotizacion(ObjVentas)
|
||||
End If
|
||||
|
||||
Else
|
||||
TieneError = True
|
||||
End If
|
||||
@@ -2887,6 +2919,7 @@ Partial Class OC
|
||||
Else
|
||||
'TERMINA TODO POR SI OCURRIÓ ALGO RARO
|
||||
If OC IsNot Nothing Then OC.Dispose()
|
||||
If ObjVentas IsNot Nothing Then ObjVentas.Dispose()
|
||||
If Conta IsNot Nothing Then Conta.Dispose()
|
||||
|
||||
'MANDA CORREOS SI EL ESTATUS ES MAYOR A 0
|
||||
@@ -5043,7 +5076,7 @@ Partial Class OC
|
||||
End Function
|
||||
#End Region
|
||||
|
||||
#Region " COTIZACIONES "
|
||||
#Region "C O T I Z A C I O N E S"
|
||||
Protected Sub VerificaSiRequiereCotizacion()
|
||||
If TipoOC = "REQ" Then
|
||||
If ChkCotizacion.Checked Then
|
||||
@@ -5083,6 +5116,32 @@ Partial Class OC
|
||||
VerificaCotizacionesGanadoras()
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Protected Function ActualizarCotizacion(ByRef ObjVentas As ClsVentas) As Boolean
|
||||
Dim OcurrioError As Boolean = False
|
||||
Try
|
||||
Dim PorcentajeGanancia As Decimal = 0.1D
|
||||
For Each Row As DataRow In DtDetalle.Rows
|
||||
Dim CvePS As Integer = Row("CvePS").ToString.ToEntero
|
||||
Dim DrPS = GlobalDTPS(CveEmpresaActual, CvePS:=CvePS).FiltroPrimero("")
|
||||
|
||||
Dim Cantidad As Decimal = Row("Cantidad").ToString.ToDecimal
|
||||
Dim PU As Decimal = Row("Importe").ToString.ToDecimal() + (Row("Importe").ToString.ToDecimal() * PorcentajeGanancia)
|
||||
Dim IEPSPS As Decimal = DrPS("IEPSPorcentaje").ToString.ToDecimal
|
||||
Dim ImporteIEPS As Decimal = ((Cantidad * PU) * IEPSPS).RoundSQL(2)
|
||||
|
||||
If Not ObjVentas.UpdateVentaDetalleRemision(Row("CveVentaDetalleCotizacion").ToString.ToEntero, CvePS, Cantidad, PU, ImporteIEPS, "", UsuarioActual.CveUsuario) Then
|
||||
OcurrioError = True
|
||||
Exit For
|
||||
End If
|
||||
Next
|
||||
Catch ex As Exception
|
||||
OcurrioError = True
|
||||
OnError("Ocurrió un error al guardar la cotización", ex)
|
||||
End Try
|
||||
|
||||
Return Not OcurrioError
|
||||
End Function
|
||||
#End Region
|
||||
|
||||
Private Function notienepresupuesto() As Boolean
|
||||
@@ -7544,4 +7603,5 @@ Partial Class OC
|
||||
End Sub
|
||||
#End Region
|
||||
|
||||
|
||||
End Class
|
||||
|
||||
Reference in New Issue
Block a user