Generar OC a partir de una cotizacion y modificar precios

This commit is contained in:
2020-02-26 19:01:27 -07:00
parent e34df69643
commit 017f404b32
5 changed files with 112 additions and 11 deletions

View File

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