diff --git a/App_Code/ClsGenerales.vb b/App_Code/ClsGenerales.vb
index e12f623c4..a3a8adcff 100644
--- a/App_Code/ClsGenerales.vb
+++ b/App_Code/ClsGenerales.vb
@@ -2819,11 +2819,12 @@ Public Class ClsGenerales
Return Retorno
End Function
- Public Function GetEntregasPorRealizar(CveEmpresa As Integer) As Boolean
+ Public Function GetEntregasPorRealizar(CveEmpresa As Integer, Optional CveTick As Long = -1) As Boolean
Dim Retorno As Boolean = False
DataAdapter("PA_Gral_EntregasPorRealizarGet")
With SqlAdapter.SelectCommand.Parameters
.Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa
+ .Add("@CveTick", SqlDbType.BigInt).Value = CveTick
End With
Try
SqlAdapter.Fill(Data)
@@ -2835,12 +2836,13 @@ Public Class ClsGenerales
Return Retorno
End Function
- Public Function AsignarEntregasPorRealizar(CvePaqueteriaGuia As Integer, CvePersonal As Integer) As Boolean
+ Public Function AsignarEntregasPorRealizar(CvePaqueteriaGuia As Integer, CvePersonal As Integer, Optional CveTick As Long = -1) As Boolean
Dim Retorno As Boolean = False
DataAdapter("PA_Gral_AsignarEntregasPorRealizar")
With SqlAdapter.SelectCommand.Parameters
.Add("@CvePaqueteriaGuia", SqlDbType.Int).Value = CvePaqueteriaGuia
.Add("@CveUsuarioAsignado", SqlDbType.Int).Value = CvePersonal
+ .Add("@CveTick", SqlDbType.BigInt).Value = CveTick
End With
Try
SqlAdapter.Fill(Data)
diff --git a/App_Code/Modelos.vb b/App_Code/Modelos.vb
index 08b59bea8..a09a7d7e1 100644
--- a/App_Code/Modelos.vb
+++ b/App_Code/Modelos.vb
@@ -2866,6 +2866,14 @@ Namespace Modelos
'Se agrega movimiento separado por la cuenta de ventas (ER)
For Each Row2 As DataRow In DT.Rows
importeMovimiento = ((TmpDTDetalle.SUM("TotalImporte", String.Format("CveClasificacion = {0} And CveSubProyecto = {1}", Row2("CveClasificacion"), Row2("CveSubProyecto"))).ToString.ToDecimal) * ValorMultiplicador)
+
+ If ObjFactura.TipoDocto = "Egs" Then
+ importeMovimiento += (TmpDTDetalle.SUM("ImporteIVA", String.Format("CveClasificacion = {0} And CveSubProyecto = {1}", Row2("CveClasificacion"), Row2("CveSubProyecto"))).ToString().ToDecimal) * ValorMultiplicador
+ importeMovimiento += (TmpDTDetalle.SUM("ImporteIEPS", String.Format("CveClasificacion = {0} And CveSubProyecto = {1}", Row2("CveClasificacion"), Row2("CveSubProyecto"))).ToString().ToDecimal) * ValorMultiplicador
+ importeMovimiento -= (TmpDTDetalle.SUM("ImporteRetIVA", String.Format("CveClasificacion = {0} And CveSubProyecto = {1}", Row2("CveClasificacion"), Row2("CveSubProyecto"))).ToString().ToDecimal) * ValorMultiplicador
+ importeMovimiento -= (TmpDTDetalle.SUM("ImporteRetISR", String.Format("CveClasificacion = {0} And CveSubProyecto = {1}", Row2("CveClasificacion"), Row2("CveSubProyecto"))).ToString().ToDecimal) * ValorMultiplicador
+ End If
+
importeMX = importeMovimiento * tipoCambio * Multiplicador
FechaMovimiento = ObjFactura.FechaPago
Concepto = $"{ObjFactura.SerieFolio} {If(Row2("CveClasificacion").ToString.ToEntero > 0, GlobalDTClasificaciones(UsuarioActual.CveEmpresa).FiltroPrimeroValor("Clasificacion", $"CveClasificacion = {Row2("CveClasificacion").ToString}"), "")} - {If(Row2("CveSubProyecto").ToString.ToEntero > 0, GlobalDTSubProyectos(-1, -1, UsuarioActual.CveEmpresa).FiltroPrimeroValor("SubProyecto", $"CveSubProyecto = {Row2("CveSubProyecto").ToString}"), "Sin SubProyecto Asignado")}"
@@ -2954,6 +2962,13 @@ Namespace Modelos
CveSubProyectoContabilizar = CveSubProyectoVenta
If tipoCambio > 1 Then Concepto += $" TC:{tipoCambio} ${importeMovimiento.FormatoNumero(2)}"
+ If ObjFactura.TipoDocto = "Dev" Then
+ TipoMovimiento = True
+ ConceptoContable = 62
+ importeMovimiento = importeMovimiento * -1
+ importeMX = importeMX * -1
+ End If
+
'Contabilidad ContPAQ
If ObjFactura.Cliente.IdCtaContRetIVA > 0 Then
IdCtaContable = ObjFactura.Cliente.IdCtaContRetIVA
@@ -2985,6 +3000,13 @@ Namespace Modelos
CveSubProyectoContabilizar = CveSubProyectoVenta
If tipoCambio > 1 Then Concepto += $" TC:{tipoCambio} ${importeMovimiento.FormatoNumero(2)}"
+ If ObjFactura.TipoDocto = "Dev" Then
+ TipoMovimiento = True
+ ConceptoContable = 314
+ importeMovimiento = importeMovimiento * -1
+ importeMX = importeMX * -1
+ End If
+
'OBTENER CUENTAS
If ObjConta.GetRetCuenta(ConceptoContable, UsuarioActual.CveEmpresa) Then
If ObjConta.DtResultados.Rows.Count > 0 Then
@@ -3003,6 +3025,13 @@ Namespace Modelos
CveSubProyectoContabilizar = CveSubProyectoVenta
If tipoCambio > 1 Then Concepto += $" TC:{tipoCambio} ${importeMovimiento.FormatoNumero(2)}"
+ If ObjFactura.TipoDocto = "Dev" Then
+ TipoMovimiento = True
+ ConceptoContable = 63
+ importeMovimiento = importeMovimiento * -1
+ importeMX = importeMX * -1
+ End If
+
'Contabilidad ContPAQ
If ObjFactura.Cliente.IdCtaContRetISR > 0 Then
IdCtaContable = ObjFactura.Cliente.IdCtaContRetISR
@@ -3031,12 +3060,58 @@ Namespace Modelos
importeMX = Math.Round(importeMovimiento * tipoCambio * Multiplicador, 2)
FechaMovimiento = ObjFactura.FechaPago
PorcentajeImpuesto = TmpDTDetalle.MAX("PorcentajeIVA").ToDecimal
- IdCtaContable = If(IdCtaIVAXTrasladar > 0, IdCtaIVAXTrasladar, UsuarioActual.Empresa.IdCuentaIVAxTrasladar)
- CveCuenta = UsuarioActual.Empresa.CveCuentaIVAxTrasladar
+
+ If ObjFactura.TipoDocto = "Dev" Then
+ TipoMovimiento = True
+ ConceptoContable = 61
+ importeMovimiento = importeMovimiento * -1
+ importeMX = importeMX * -1
+
+ IdCtaContable = If(IdCtaIVATrasladado > 0, IdCtaIVATrasladado, UsuarioActual.Empresa.IdCuentaIVATrasladado)
+ CveCuenta = If(CveCuentaIVATrasladado > 0, CveCuentaIVATrasladado, UsuarioActual.Empresa.CveCuentaIVATrasladado)
+ Else
+ IdCtaContable = If(IdCtaIVAXTrasladar > 0, IdCtaIVAXTrasladar, UsuarioActual.Empresa.IdCuentaIVAxTrasladar)
+ CveCuenta = If(CveCuentaIVAxTrasladar > 0, CveCuentaIVAxTrasladar, UsuarioActual.Empresa.CveCuentaIVAxTrasladar)
+ End If
+
CveSubProyectoContabilizar = CveSubProyectoVenta
If tipoCambio > 1 Then Concepto += $" TC:{tipoCambio} ${importeMovimiento.FormatoNumero(2)}"
End If
+ If ObjFactura.TipoDocto = "Egs" Then
+
+ importeMovimiento = ObjFactura.IVA * ValorMultiplicador
+ importeMX = Math.Round(importeMovimiento * tipoCambio * Multiplicador, 2)
+ FechaMovimiento = ObjFactura.FechaPago
+ PorcentajeImpuesto = TmpDTDetalle.MAX("PorcentajeIVA").ToDecimal
+
+ If importeMovimiento <> 0 Then
+ 'IVA X TRASLADAR
+ IdCtaIVAXTrasladar = If(IdCtaIVAXTrasladar > 0, IdCtaIVAXTrasladar, UsuarioActual.Empresa.IdCuentaIVAxTrasladar)
+ CveCuentaIVAxTrasladar = If(CveCuentaIVAxTrasladar > 0, CveCuentaIVAxTrasladar, UsuarioActual.Empresa.CveCuentaIVAxTrasladar)
+ Concepto = ObjConta.ObtenerConceptoEmpresa(UsuarioActual.CveEmpresa, 13, ObjFactura.Cliente.Nombre, $"{ObjFactura.Serie}-{ObjFactura.Folio}", FolioIE.ToString())
+
+ If Not ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, TipoMovimiento, importeMovimiento, Referencia, 13, Concepto, Fecha, IdCtaIVAXTrasladar, -1, CveVenta:=ObjFactura.CveVenta, CveCliente:=CveCliente, CveIE:=-1, ImporteMX:=importeMX * Multiplicador, ImporteME:=If(tipoCambio = 1, 0, importeMovimiento), CveCuenta:=CveCuentaIVAxTrasladar, CveSubProyecto:=CveSubProyectoContabilizar, PorcentajeImpuesto:=PorcentajeImpuesto) Then
+ ErrorPrepoliza = True
+ Exit For
+ End If
+
+ 'IVA PAGADO
+ IdCtaIVATrasladado = If(IdCtaIVATrasladado > 0, IdCtaIVATrasladado, UsuarioActual.Empresa.IdCuentaIVATrasladado)
+ CveCuentaIVATrasladado = If(CveCuentaIVATrasladado > 0, CveCuentaIVATrasladado, UsuarioActual.Empresa.CveCuentaIVATrasladado)
+ Concepto = ObjConta.ObtenerConceptoEmpresa(UsuarioActual.CveEmpresa, 61, ObjFactura.Cliente.Nombre, $"{ObjFactura.Serie}-{ObjFactura.Folio}", FolioIE.ToString())
+
+ If Not ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, Not TipoMovimiento, importeMovimiento, Referencia, 61, Concepto, Fecha, IdCtaIVATrasladado, -1, CveVenta:=ObjFactura.CveVenta, CveCliente:=CveCliente, CveIE:=-1, ImporteMX:=importeMX * Multiplicador, ImporteME:=If(tipoCambio = 1, 0, importeMovimiento), CveCuenta:=CveCuentaIVATrasladado, CveSubProyecto:=CveSubProyectoContabilizar, PorcentajeImpuesto:=PorcentajeImpuesto) Then
+ ErrorPrepoliza = True
+ Exit For
+ End If
+ End If
+
+
+ importeMovimiento = 0
+ importeMX = 0
+ End If
+
Case 38 'IEPS por Trasladar
If Not ObjFactura.TipoDocto.Contiene("Rem", "RNC") Then
@@ -3044,13 +3119,51 @@ Namespace Modelos
importeMX = Math.Round(importeMovimiento * tipoCambio * Multiplicador, 2)
FechaMovimiento = ObjFactura.Fecha
CveSubProyectoContabilizar = CveSubProyectoVenta
- If tipoCambio > 1 Then Concepto += $" TC:{tipoCambio} ${importeMovimiento.FormatoNumero(2)}"
- If importeMovimiento <> 0 AndAlso ObjConta.GetRetCuenta(ConceptoContable, ObjFactura.CveEmpresa) Then
- If ObjConta.DtResultados.Rows.Count > 0 Then
- IdCtaContable = ObjConta.DtResultados.Rows(0)("IdCuentaIEPSxTrasladar").ToString.ToEntero
- CveCuenta = ObjConta.DtResultados.Rows(0)("IdCuentaIEPSxTrasladarSIG").ToString.ToEntero
+
+ If ObjFactura.TipoDocto = "Dev" Then
+ TipoMovimiento = True
+ ConceptoContable = 39
+ importeMovimiento = importeMovimiento * -1
+ importeMX = importeMX * -1
+
+ If importeMovimiento <> 0 AndAlso ObjConta.GetRetCuenta(ConceptoContable, ObjFactura.CveEmpresa) Then
+ If ObjConta.DtResultados.Rows.Count > 0 Then
+ IdCtaContable = ObjConta.DtResultados.Rows(0)("IdCuentaIEPSTrasladado").ToString().ToEntero()
+ CveCuenta = ObjConta.DtResultados.Rows(0)("IdCuentaIEPSTrasladadoSIG").ToString().ToEntero()
+ End If
+ End If
+ Else
+ If importeMovimiento <> 0 AndAlso ObjConta.GetRetCuenta(ConceptoContable, ObjFactura.CveEmpresa) Then
+ If ObjConta.DtResultados.Rows.Count > 0 Then
+ IdCtaContable = ObjConta.DtResultados.Rows(0)("IdCuentaIEPSxTrasladar").ToString().ToEntero()
+ CveCuenta = ObjConta.DtResultados.Rows(0)("IdCuentaIEPSxTrasladarSIG").ToString().ToEntero()
+ End If
End If
End If
+
+ If tipoCambio > 1 Then Concepto += $" TC:{tipoCambio} ${importeMovimiento.FormatoNumero(2)}"
+
+ If importeMovimiento <> 0 AndAlso ObjFactura.TipoDocto = "Egs" Then
+ 'IEPS X TRASLADAR
+ Concepto = ObjConta.ObtenerConceptoEmpresa(UsuarioActual.CveEmpresa, 38, ObjFactura.Cliente.Nombre, $"{ObjFactura.Serie}-{ObjFactura.Folio}", FolioIE.ToString())
+ If Not ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, TipoMovimiento, importeMovimiento, Referencia, 38, Concepto, Fecha, UsuarioActual.Empresa.IdCuentaIEPSxTrasladar, -1, CveVenta:=ObjFactura.CveVenta, CveCliente:=CveCliente, CveIE:=-1, ImporteMX:=importeMX * Multiplicador, ImporteME:=If(tipoCambio = 1, 0, importeMovimiento), CveSubProyecto:=CveSubProyectoContabilizar) Then
+ ErrorPrepoliza = True
+ Exit For
+ End If
+
+ 'IEPS PAGADO
+ Concepto = ObjConta.ObtenerConceptoEmpresa(UsuarioActual.CveEmpresa, 39, ObjFactura.Cliente.Nombre, $"{ObjFactura.Serie}-{ObjFactura.Folio}", FolioIE.ToString())
+ If Not ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, Not TipoMovimiento, importeMovimiento, Referencia, 39, Concepto, Fecha, UsuarioActual.Empresa.IdCuentaIEPSTrasladado, -1, CveVenta:=ObjFactura.CveVenta, CveCliente:=CveCliente, CveIE:=-1, ImporteMX:=importeMX * Multiplicador, ImporteME:=If(tipoCambio = 1, 0, importeMovimiento), CveSubProyecto:=CveSubProyectoContabilizar) Then
+ ErrorPrepoliza = True
+ Exit For
+ End If
+
+ importeMovimiento = 0
+ importeMX = 0
+ End If
+
+ If tipoCambio > 1 Then Concepto += $" TC:{tipoCambio} ${importeMovimiento.FormatoNumero(2)}"
+
End If
diff --git a/Compras/PopUpVerFactura.aspx.vb b/Compras/PopUpVerFactura.aspx.vb
index bc92c054a..2a74c593d 100644
--- a/Compras/PopUpVerFactura.aspx.vb
+++ b/Compras/PopUpVerFactura.aspx.vb
@@ -472,6 +472,13 @@ Partial Class PopUpVerFactura
End If
End If
+ 'IMPRIME ENTREGAS POR REALIZAR
+ If UrlParametros("OP").ToString = "ENTREGAS" Then
+ If UrlParametros("CVETICK") IsNot Nothing And UrlParametros("USUARIOENTREGA") IsNot Nothing Then
+ ImprimeEntregasPorRealziar(UrlParametros("CVETICK").ToString, UrlParametros("USUARIOENTREGA").ToString)
+ End If
+ End If
+
End Sub
Private Function Parametros(Cadena As String) As Hashtable
@@ -502,9 +509,11 @@ Partial Class PopUpVerFactura
End If
If ObjPuntoVenta.GetCortesDetalleVentas(CveCorte, UsuarioActual.CveEmpresa) Then
DtCortesVentas = ObjPuntoVenta.DtResultados
- If ObjPuntoVenta.DtResultados.Rows.Count > 0 Then
- Fecha = ObjPuntoVenta.DtResultados.Rows(0)("FechaInicial").ToString
- Nombre = ObjPuntoVenta.DtResultados.Rows(0)("Nombre").ToString
+ If DtCortesVentas.Rows.Count > 0 Then
+ Dim RowInfo As DataRow = DtCortesVentas.FiltroPrimero("CveVenta > 0")
+
+ Fecha = RowInfo("FechaInicial").ToString
+ Nombre = RowInfo("Nombre").ToString
End If
End If
ObjVenta.Dispose()
@@ -4160,7 +4169,23 @@ Partial Class PopUpVerFactura
Else
RegistraScript("alert('No hay un formato de factura predefinido,favor de comunicar a soporte tecnico')")
End If
- End Sub
+ End Sub
#End Region
-
+
+#Region "OP = ENTREGAS - Entregas por realizar"
+ Public Sub ImprimeEntregasPorRealziar(pCveTick As String, pUsuarioEntregar As String)
+ Dim CveTick As Long = pCveTick.ToLong()
+ Dim ObjGeneral As New ClsGenerales
+ If ObjGeneral.GetEntregasPorRealizar(UsuarioActual.CveEmpresa, CveTick) Then
+ Dim DtPaqueteriasGuias As DataTable = ObjGeneral.DtResultados
+ Dim RepParams As New List(Of ReportParameter)
+ RepParams.Add(New ReportParameter("Fecha", DateTime.Today.ToString()))
+ RepParams.Add(New ReportParameter("AsignadoA", pUsuarioEntregar))
+ RepParams.Add(New ReportParameter("UsuarioImprimio", UsuarioActual.Nombre))
+
+ ImprimirPDF($"Empresas/{UsuarioActual.CveEmpresa}/Formatos/EntregasPorRealizar.rdlc", DtPaqueteriasGuias, RepParams, "Entregas por realizar", "PDF", RDSName:="DsInventarios")
+ End If
+ End Sub
+#End Region
+
End Class
diff --git a/General/RepPaqueteriasGuias.aspx.cs b/General/RepPaqueteriasGuias.aspx.cs
index 94b87e29b..c4a71b507 100644
--- a/General/RepPaqueteriasGuias.aspx.cs
+++ b/General/RepPaqueteriasGuias.aspx.cs
@@ -194,7 +194,13 @@ public partial class General_RepPaqueteriasGuias : ClsPaginas
protected void CargaPaqueterias()
{
- DdlPaqueterias.DataSource = GlobalDTPaqueterias;
+ if (UsuarioActual.CveRol == 1339)
+ {
+ DdlPaqueterias.DataSource = GlobalDTPaqueterias.FiltraParametros("TipoPaqueteria = 0");
+ }else
+ {
+ DdlPaqueterias.DataSource = GlobalDTPaqueterias;
+ }
DdlPaqueterias.DataBind();
DdlPaqueterias.Items.Insert(0, new ListItem("Todos ", "-1"));
@@ -216,12 +222,19 @@ public partial class General_RepPaqueteriasGuias : ClsPaginas
protected void CargaEstatus()
{
- DdlEstatus.Items.Insert(0, new ListItem("Todos ", "-1"));
- DdlEstatus.Items.Insert(1, new ListItem("En Proceso ", "1"));
- DdlEstatus.Items.Insert(2, new ListItem("Confirmado por Proveedor ", "2"));
- DdlEstatus.Items.Insert(3, new ListItem("Entregado ", "3"));
- DdlEstatus.Items.Insert(4, new ListItem("Confirmado por Cliente", "4"));
- DdlEstatus.SelectedValue = "1";
+ if (UsuarioActual.CveRol == 1339)
+ {
+ DdlEstatus.Items.Insert(0, new ListItem("En Proceso ", "2"));
+ }else
+ {
+ DdlEstatus.Items.Insert(0, new ListItem("Todos ", "-1"));
+ DdlEstatus.Items.Insert(1, new ListItem("Pendiente ", "1"));
+ DdlEstatus.Items.Insert(2, new ListItem("En Proceso ", "2"));
+ DdlEstatus.Items.Insert(3, new ListItem("Entregado ", "3"));
+ DdlEstatus.Items.Insert(4, new ListItem("Reasignar Nueva Entrega ", "4"));
+ DdlEstatus.Items.Insert(5, new ListItem("Directo a Clientes ", "5"));
+ DdlEstatus.SelectedValue = "-1";
+ }
DdlEstatusEditar.Items.Insert(0, new ListItem("Seleccione ", "-1"));
DdlEstatusEditar.Items.Insert(1, new ListItem("En Proceso ", "1"));
@@ -238,9 +251,17 @@ public partial class General_RepPaqueteriasGuias : ClsPaginas
private void CargaUsuarios()
{
- DdlUsuarios.DataSource = get_GlobalDTUsuarios(CveEmpresa:UsuarioActual.CveEmpresa);
- DdlUsuarios.DataBind();
- DdlUsuarios.Items.Insert(0, new ListItem("Todos ", "-1"));
+ if (UsuarioActual.CveRol == 1339)
+ {
+ DdlUsuarios.DataSource = get_GlobalDTUsuarios(CveEmpresa:UsuarioActual.CveEmpresa).FiltraParametros(String.Format("CveRol = {0}",UsuarioActual.CveRol));
+ DdlUsuarios.DataBind();
+ }
+ else
+ {
+ DdlUsuarios.DataSource = get_GlobalDTUsuarios(CveEmpresa: UsuarioActual.CveEmpresa);
+ DdlUsuarios.DataBind();
+ DdlUsuarios.Items.Insert(0, new ListItem("Todos ", "-1"));
+ }
}
protected void InicializaFechas()
diff --git a/Inventarios/EntregasPorRealizar.aspx b/Inventarios/EntregasPorRealizar.aspx
index c15583329..2ba548486 100644
--- a/Inventarios/EntregasPorRealizar.aspx
+++ b/Inventarios/EntregasPorRealizar.aspx
@@ -22,7 +22,7 @@
-
+ <%--
@@ -31,7 +31,7 @@
-
+ --%>
diff --git a/Inventarios/EntregasPorRealizar.aspx.cs b/Inventarios/EntregasPorRealizar.aspx.cs
index 60fbe7d17..9b590c741 100644
--- a/Inventarios/EntregasPorRealizar.aspx.cs
+++ b/Inventarios/EntregasPorRealizar.aspx.cs
@@ -41,13 +41,17 @@ public partial class Inventarios_EntregasPorRealizar : ClsPaginas
GridViewRowCollection Grid = GvPaqueteriasGuias.Rows;
int CvePersonal = DdlUsuario.SelectedValue.ToEntero();
+ long CveTick = DateTime.Now.Ticks;
+ string Usuario = DdlUsuario.SelectedValue.ToEntero() > 0 ? DdlUsuario.SelectedItem.Text : "Todos";
+
+ string LigaPopUpVerFactura = String.Format("/Compras/PopUpVerFactura.aspx?P={0}", ModExtensiones.Encripta(String.Format("OP=ENTREGAS&CVETICK={0}&USUARIOENTREGA={1}", CveTick, Usuario)));
foreach (GridViewRow row in Grid)
{
if (row.FCCheckBox("ChkAsigna").Checked)
{
int CvePaqueteriasGuias = row.DataKey("CvePaqueteriaGuia").ToEntero();
- if(!ObjGeneral.AsignarEntregasPorRealizar(CvePaqueteriasGuias, CvePersonal)){
+ if(!ObjGeneral.AsignarEntregasPorRealizar(CvePaqueteriasGuias, CvePersonal, CveTick)){
TieneError = true;
}else
{
@@ -67,11 +71,11 @@ public partial class Inventarios_EntregasPorRealizar : ClsPaginas
}
}
}
-
+
if (!TieneError)
{
ObjGeneral.Commit();
- Alert("Entregas asignadas correctamente");
+ Alert(String.Format("Entregas asignadas correctamente
Imprimir Reporte de Entregas Asignadas", LigaPopUpVerFactura));
CargarEntregas();
UpDatos.Update();
}
diff --git a/OC/RepOC.aspx.vb b/OC/RepOC.aspx.vb
index f945d7c81..290f20027 100644
--- a/OC/RepOC.aspx.vb
+++ b/OC/RepOC.aspx.vb
@@ -150,7 +150,7 @@ Partial Class RepOC
If Not UsuarioActual.Empresa.Funcionalidad(105).ToString = "1" Then
DDlPS.ddl.Items.Clear()
- DDlPS.ddl.DataSource = GlobalDTPSSimplificado(UsuarioActual.CveEmpresa, CveClasificacion:=CveClasificacion, Estatus:=1, AplicaParaVenta:=1)
+ DDlPS.ddl.DataSource = GlobalDTPSSimplificado(UsuarioActual.CveEmpresa, CveClasificacion:=CveClasificacion, Estatus:=1)
DDlPS.ddl.DataBind()
DDlPS.ddl.Items.Insert(0, New ListItem("*** Actualizar listado de Productos o Servicios ***", "-2"))
DDlPS.ddl.Items.Insert(0, New ListItem("Seleccione el Producto", "-1"))
diff --git a/Ventas/RepCancelacionesPorRespuesta.aspx.cs b/Ventas/RepCancelacionesPorRespuesta.aspx.cs
index 48fb356ac..96c2c35c3 100644
--- a/Ventas/RepCancelacionesPorRespuesta.aspx.cs
+++ b/Ventas/RepCancelacionesPorRespuesta.aspx.cs
@@ -34,39 +34,48 @@ public partial class Ventas_RepCancelacionesPorRespuesta : ClsPaginas
private void CargaDatos()
{
HdnLigaRefacturar.Value = "";
+
if (Request["CveVenta"] != null)
{
this.CveVenta = Request["CveVenta"].ToString().ToEntero();
}
+
var ObjVentas = new ClsVentas();
if (ObjVentas.GetVentas(UsuarioActual.CveEmpresa, "-1", "-1", -1, "-1", -1, -1, -2, -1, "-1", "-1", "-1", CveUsuarioConsulta: UsuarioActual.CveUsuario))
- {
- if (CveVenta > 0)
- {
- DtVentas = ObjVentas.DtResultados.FiltraParametros($"CveVenta={CveVenta}");
- }
- else
- {
- DtVentas = ObjVentas.DtResultados.Copy();
+ {
+
+ if (Request["CveVenta"] != null && Request["CveVenta"].ToString().ToEntero() > 0)
+ {
+ DtVentas = ObjVentas.DtResultados.FiltraParametros($"CveVenta={Request["CveVenta"].ToString().ToEntero()}");
+ }
+ else
+ {
+ DtVentas = ObjVentas.DtResultados.Copy();
}
}
+
ObjVentas.Dispose();
GvDatos.DataSource = DtVentas.FiltraParametros("CveEstatusFactura = 20 AND CveEstatusRefacturacion = 0");
+
var DtRefacturar = DtVentas.FiltraParametros("CveEstatusRefacturacion IN (1,3)");
- if (DtRefacturar.Rows.Count > 0)
+ if (DtRefacturar != null && DtRefacturar.Rows.Count > 0)
{
DivRefacturar.Visible = true;
GvRefacturaciones.DataSource = DtRefacturar;
GvRefacturaciones.DataBind();
}
+
GvDatos.DataBind();
UPDatos.Update();
}
protected void BtnValidar_Click(object sender, EventArgs e)
{
- HdnLigaRefacturar.Value = "";
+ this.HdnLigaRefacturar.Value = "";
+ this.CveVenta = -1;
+
GridViewRow GvRow = (GridViewRow)(((LinkButton)sender).NamingContainer);
- int CveVenta = GvRow.DataKey("CveVenta").ToEntero();
+ this.CveVenta = GvRow.DataKey("CveVenta").ToEntero();
+
int CveCliente = GvRow.DataKey("CveCliente").ToEntero();
string Total = GvRow.DataKey("Total");
string SubTotal = GvRow.DataKey("SubTotal");
@@ -92,9 +101,12 @@ public partial class Ventas_RepCancelacionesPorRespuesta : ClsPaginas
}
protected void BtnValidarRefacturacion_Click(object sender, EventArgs e)
{
- HdnLigaRefacturar.Value = "";
+ this.HdnLigaRefacturar.Value = "";
+ this.CveVenta = -1;
+
GridViewRow GvRow = (GridViewRow)(((LinkButton)sender).NamingContainer);
- int CveVenta = GvRow.DataKey("CveVenta").ToEntero();
+ this.CveVenta = GvRow.DataKey("CveVenta").ToEntero();
+
int CveCliente = GvRow.DataKey("CveCliente").ToEntero();
string Total = GvRow.DataKey("Total");
string SubTotal = GvRow.DataKey("SubTotal");
@@ -134,6 +146,7 @@ public partial class Ventas_RepCancelacionesPorRespuesta : ClsPaginas
private MRespuestaSAT VerificarVigenciaSAT(int CveVenta, int CveCliente, string Folio, string TipoDocto, string uuid, string emisor, string receptor, string total, bool EsRefacturacion = false)
{
HdnLigaRefacturar.Value = "";
+
var retorno = new MRespuestaSAT()
{
Mensaje = "",
@@ -291,7 +304,10 @@ public partial class Ventas_RepCancelacionesPorRespuesta : ClsPaginas
}
protected void LnkValidar_Click(object sender, EventArgs e)
- {
+ {
+ this.HdnLigaRefacturar.Value = "";
+ this.CveVenta = -1;
+
if (DtVentas != null)
{
var sb = new StringBuilder();
@@ -328,7 +344,14 @@ public partial class Ventas_RepCancelacionesPorRespuesta : ClsPaginas
}
public void BtnEnviarMailCancelacion_Click(object sender, EventArgs e)
{
- ImprimeCancelacion(CveVenta);
+ if (this.CveVenta > 0)
+ {
+ ImprimeCancelacion(this.CveVenta);
+ }
+ else
+ {
+ Alert("No se encontro la factura para enviar el acuse", TipoMensaje.MsgAdvertencia);
+ }
}
public void ImprimeCancelacion(int CveVenta)
diff --git a/Ventas/Ventas.aspx.vb b/Ventas/Ventas.aspx.vb
index 27898d0ca..9c7b4ca15 100644
--- a/Ventas/Ventas.aspx.vb
+++ b/Ventas/Ventas.aspx.vb
@@ -10820,6 +10820,14 @@ Partial Class Ventas
'Se agrega movimiento separado por la cuenta de ventas (ER)
For Each Row2 As DataRow In DT.Rows
importeMovimiento = (TmpDTDetalle.SUM("TotalImporte", String.Format("CveClasificacion = {0} And CveSubProyecto = {1}", Row2("CveClasificacion"), Row2("CveSubProyecto"))).ToString().ToDecimal) * ValorMultiplicador
+
+ If ObjFactura.TipoDocto = "Egs" Then
+ importeMovimiento += (TmpDTDetalle.SUM("ImporteIVA", String.Format("CveClasificacion = {0} And CveSubProyecto = {1}", Row2("CveClasificacion"), Row2("CveSubProyecto"))).ToString().ToDecimal) * ValorMultiplicador
+ importeMovimiento += (TmpDTDetalle.SUM("ImporteIEPS", String.Format("CveClasificacion = {0} And CveSubProyecto = {1}", Row2("CveClasificacion"), Row2("CveSubProyecto"))).ToString().ToDecimal) * ValorMultiplicador
+ importeMovimiento -= (TmpDTDetalle.SUM("ImporteRetIVA", String.Format("CveClasificacion = {0} And CveSubProyecto = {1}", Row2("CveClasificacion"), Row2("CveSubProyecto"))).ToString().ToDecimal) * ValorMultiplicador
+ importeMovimiento -= (TmpDTDetalle.SUM("ImporteRetISR", String.Format("CveClasificacion = {0} And CveSubProyecto = {1}", Row2("CveClasificacion"), Row2("CveSubProyecto"))).ToString().ToDecimal) * ValorMultiplicador
+ End If
+
importeMX = importeMovimiento * tipoCambio * Multiplicador
FechaMovimiento = ObjFactura.FechaPago
Concepto = $"{ViewState("VentaFolio").ToString()} {If(Row2("CveClasificacion").ToString().ToEntero() > 0, GlobalDTClasificaciones(UsuarioActual.CveEmpresa).FiltroPrimeroValor("Clasificacion", $"CveClasificacion = {Row2("CveClasificacion").ToString()}"), "")} - {If(Row2("CveSubProyecto").ToString().ToEntero() > 0, GlobalDTSubProyectos(-1, -1, UsuarioActual.CveEmpresa).FiltroPrimeroValor("SubProyecto", $"CveSubProyecto = {Row2("CveSubProyecto").ToString()}"), "Sin SubProyecto Asignado")}"
@@ -10919,6 +10927,13 @@ Partial Class Ventas
CveSubProyectoContabilizar = CveSubProyectoVenta
If tipoCambio > 1 Then Concepto += $" TC:{tipoCambio} ${importeMovimiento.FormatoNumero(2)}"
+ If ObjFactura.TipoDocto = "Dev" Then
+ TipoMovimiento = True
+ ConceptoContable = 62
+ importeMovimiento = importeMovimiento * -1
+ importeMX = importeMX * -1
+ End If
+
'CONTABILIDAD CONTPAQ
If IdCtaContRetIVA > 0 Then
IdCtaContable = IdCtaContRetIVA
@@ -10941,7 +10956,6 @@ Partial Class Ventas
End If
End If
-
End If
Case 313 'Ret Iva Servicios
If Not ObjFactura.TipoDocto.Contiene("Rem", "RNC") AndAlso ObjFactura.CveTipoRetencion = 4 Then 'SI TIENE RETENCION DE IVA DE SERVICIOS
@@ -10951,6 +10965,13 @@ Partial Class Ventas
CveSubProyectoContabilizar = CveSubProyectoVenta
If tipoCambio > 1 Then Concepto += $" TC:{tipoCambio} ${importeMovimiento.FormatoNumero(2)}"
+ If ObjFactura.TipoDocto = "Dev" Then
+ TipoMovimiento = True
+ ConceptoContable = 314
+ importeMovimiento = importeMovimiento * -1
+ importeMX = importeMX * -1
+ End If
+
'OBTENER CUENTAS
If ObjConta.GetRetCuenta(ConceptoContable, UsuarioActual.CveEmpresa) Then
If ObjConta.DtResultados.Rows.Count > 0 Then
@@ -10967,6 +10988,14 @@ Partial Class Ventas
importeMX = Math.Round(importeMovimiento, 2) * tipoCambio * Multiplicador
FechaMovimiento = ObjFactura.FechaPago
CveSubProyectoContabilizar = CveSubProyectoVenta
+
+ If ObjFactura.TipoDocto = "Dev" Then
+ TipoMovimiento = True
+ ConceptoContable = 63
+ importeMovimiento = importeMovimiento * -1
+ importeMX = importeMX * -1
+ End If
+
If tipoCambio > 1 Then Concepto += $" TC:{tipoCambio} ${importeMovimiento.FormatoNumero(2)}"
'Contabilidad ContPAQ
@@ -10997,26 +11026,110 @@ Partial Class Ventas
importeMX = Math.Round(importeMovimiento * tipoCambio * Multiplicador, 2)
FechaMovimiento = ObjFactura.FechaPago
PorcentajeImpuesto = TmpDT.MAX("PorcentajeIVA").ToDecimal
- IdCtaContable = If(IdCtaIVAXTrasladar > 0, IdCtaIVAXTrasladar, UsuarioActual.Empresa.IdCuentaIVAxTrasladar)
- CveCuenta = If(CveCuentaIVAxTrasladar > 0, CveCuentaIVAxTrasladar, UsuarioActual.Empresa.CveCuentaIVAxTrasladar)
+
+ If ObjFactura.TipoDocto = "Dev" Then
+ TipoMovimiento = True
+ ConceptoContable = 61
+ importeMovimiento = importeMovimiento * -1
+ importeMX = importeMX * -1
+
+ IdCtaContable = If(IdCtaIVATrasladado > 0, IdCtaIVATrasladado, UsuarioActual.Empresa.IdCuentaIVATrasladado)
+ CveCuenta = If(CveCuentaIVATrasladado > 0, CveCuentaIVATrasladado, UsuarioActual.Empresa.CveCuentaIVATrasladado)
+ Else
+ IdCtaContable = If(IdCtaIVAXTrasladar > 0, IdCtaIVAXTrasladar, UsuarioActual.Empresa.IdCuentaIVAxTrasladar)
+ CveCuenta = If(CveCuentaIVAxTrasladar > 0, CveCuentaIVAxTrasladar, UsuarioActual.Empresa.CveCuentaIVAxTrasladar)
+ End If
+
+
CveSubProyectoContabilizar = CveSubProyectoVenta
If tipoCambio > 1 Then Concepto += $" TC:{tipoCambio} ${importeMovimiento.FormatoNumero(2)}"
End If
+ If ObjFactura.TipoDocto = "Egs" Then
+
+ importeMovimiento = ObjFactura.IVA * ValorMultiplicador
+ importeMX = Math.Round(importeMovimiento * tipoCambio * Multiplicador, 2)
+ FechaMovimiento = ObjFactura.FechaPago
+ PorcentajeImpuesto = TmpDT.MAX("PorcentajeIVA").ToDecimal
+
+ If importeMovimiento <> 0 Then
+ 'IVA X TRASLADAR
+ IdCtaIVAXTrasladar = If(IdCtaIVAXTrasladar > 0, IdCtaIVAXTrasladar, UsuarioActual.Empresa.IdCuentaIVAxTrasladar)
+ CveCuentaIVAxTrasladar = If(CveCuentaIVAxTrasladar > 0, CveCuentaIVAxTrasladar, UsuarioActual.Empresa.CveCuentaIVAxTrasladar)
+ Concepto = ObjConta.ObtenerConceptoEmpresa(UsuarioActual.CveEmpresa, 13, ObjFactura.Cliente.Nombre, $"{ObjFactura.Serie}-{ObjFactura.Folio}", FolioIE.ToString())
+
+ If Not ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, TipoMovimiento, importeMovimiento, Referencia, 13, Concepto, Fecha, IdCtaIVAXTrasladar, -1, CveVenta:=ObjFactura.CveVenta, CveCliente:=CveCliente, CveIE:=-1, ImporteMX:=importeMX * Multiplicador, ImporteME:=If(tipoCambio = 1, 0, importeMovimiento), CveCuenta:=CveCuentaIVAxTrasladar, CveSubProyecto:=CveSubProyectoContabilizar, PorcentajeImpuesto:=PorcentajeImpuesto) Then
+ ErrorPrepoliza = True
+ Exit For
+ End If
+
+ 'IVA PAGADO
+ IdCtaIVATrasladado = If(IdCtaIVATrasladado > 0, IdCtaIVATrasladado, UsuarioActual.Empresa.IdCuentaIVATrasladado)
+ CveCuentaIVATrasladado = If(CveCuentaIVATrasladado > 0, CveCuentaIVATrasladado, UsuarioActual.Empresa.CveCuentaIVATrasladado)
+ Concepto = ObjConta.ObtenerConceptoEmpresa(UsuarioActual.CveEmpresa, 61, ObjFactura.Cliente.Nombre, $"{ObjFactura.Serie}-{ObjFactura.Folio}", FolioIE.ToString())
+
+ If Not ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, Not TipoMovimiento, importeMovimiento, Referencia, 61, Concepto, Fecha, IdCtaIVATrasladado, -1, CveVenta:=ObjFactura.CveVenta, CveCliente:=CveCliente, CveIE:=-1, ImporteMX:=importeMX * Multiplicador, ImporteME:=If(tipoCambio = 1, 0, importeMovimiento), CveCuenta:=CveCuentaIVATrasladado, CveSubProyecto:=CveSubProyectoContabilizar, PorcentajeImpuesto:=PorcentajeImpuesto) Then
+ ErrorPrepoliza = True
+ Exit For
+ End If
+ End If
+
+
+ importeMovimiento = 0
+ importeMX = 0
+ End If
+
+
Case 38 'IEPS por Trasladar
If Not ObjFactura.TipoDocto.Contiene("Rem") Then
importeMovimiento = ObjFactura.IEPS * ValorMultiplicador
importeMX = Math.Round(importeMovimiento * tipoCambio * Multiplicador, 2)
FechaMovimiento = ObjFactura.Fecha
CveSubProyectoContabilizar = CveSubProyectoVenta
- If tipoCambio > 1 Then Concepto += $" TC:{tipoCambio} ${importeMovimiento.FormatoNumero(2)}"
- If importeMovimiento <> 0 AndAlso ObjConta.GetRetCuenta(ConceptoContable, ObjFactura.CveEmpresa) Then
- If ObjConta.DtResultados.Rows.Count > 0 Then
- IdCtaContable = ObjConta.DtResultados.Rows(0)("IdCuentaIEPSxTrasladar").ToString().ToEntero()
- CveCuenta = ObjConta.DtResultados.Rows(0)("IdCuentaIEPSxTrasladarSIG").ToString().ToEntero()
+
+ If ObjFactura.TipoDocto = "Dev" Then
+ TipoMovimiento = True
+ ConceptoContable = 39
+ importeMovimiento = importeMovimiento * -1
+ importeMX = importeMX * -1
+
+ If importeMovimiento <> 0 AndAlso ObjConta.GetRetCuenta(ConceptoContable, ObjFactura.CveEmpresa) Then
+ If ObjConta.DtResultados.Rows.Count > 0 Then
+ IdCtaContable = ObjConta.DtResultados.Rows(0)("IdCuentaIEPSTrasladado").ToString().ToEntero()
+ CveCuenta = ObjConta.DtResultados.Rows(0)("IdCuentaIEPSTrasladadoSIG").ToString().ToEntero()
+ End If
+ End If
+ Else
+ If importeMovimiento <> 0 AndAlso ObjConta.GetRetCuenta(ConceptoContable, ObjFactura.CveEmpresa) Then
+ If ObjConta.DtResultados.Rows.Count > 0 Then
+ IdCtaContable = ObjConta.DtResultados.Rows(0)("IdCuentaIEPSxTrasladar").ToString().ToEntero()
+ CveCuenta = ObjConta.DtResultados.Rows(0)("IdCuentaIEPSxTrasladarSIG").ToString().ToEntero()
+ End If
End If
End If
+
+ If tipoCambio > 1 Then Concepto += $" TC:{tipoCambio} ${importeMovimiento.FormatoNumero(2)}"
+
+ If importeMovimiento <> 0 AndAlso ObjFactura.TipoDocto = "Egs" Then
+ 'IEPS X TRASLADAR
+ Concepto = ObjConta.ObtenerConceptoEmpresa(UsuarioActual.CveEmpresa, 38, ObjFactura.Cliente.Nombre, $"{ObjFactura.Serie}-{ObjFactura.Folio}", FolioIE.ToString())
+ If Not ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, TipoMovimiento, importeMovimiento, Referencia, 38, Concepto, Fecha, UsuarioActual.Empresa.IdCuentaIEPSxTrasladar, -1, CveVenta:=ObjFactura.CveVenta, CveCliente:=CveCliente, CveIE:=-1, ImporteMX:=importeMX * Multiplicador, ImporteME:=If(tipoCambio = 1, 0, importeMovimiento), CveSubProyecto:=CveSubProyectoContabilizar) Then
+ ErrorPrepoliza = True
+ Exit For
+ End If
+
+ 'IEPS PAGADO
+ Concepto = ObjConta.ObtenerConceptoEmpresa(UsuarioActual.CveEmpresa, 39, ObjFactura.Cliente.Nombre, $"{ObjFactura.Serie}-{ObjFactura.Folio}", FolioIE.ToString())
+ If Not ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, Not TipoMovimiento, importeMovimiento, Referencia, 39, Concepto, Fecha, UsuarioActual.Empresa.IdCuentaIEPSTrasladado, -1, CveVenta:=ObjFactura.CveVenta, CveCliente:=CveCliente, CveIE:=-1, ImporteMX:=importeMX * Multiplicador, ImporteME:=If(tipoCambio = 1, 0, importeMovimiento), CveSubProyecto:=CveSubProyectoContabilizar) Then
+ ErrorPrepoliza = True
+ Exit For
+ End If
+
+ importeMovimiento = 0
+ importeMX = 0
+ End If
+
End If
@@ -11387,11 +11500,6 @@ Partial Class Ventas
i = i + 1
Next
- 'VERIFICA QUE SE REALIZO EL MOVIMIENTO DE ALMACEN
- If Not (ObjInventario.GetInv_Mov(factura.CveVenta, UsuarioActual.CveEmpresa) AndAlso ObjInventario.DtResultados.Rows.Count > 0) Then
- OcurrioError = True
- End If
-
'REGISTRO LA PREPOLIZA DE COSTO VS ALMACEN
If Not OcurrioError Then
Dim DtCostos As DataTable = Nothing
@@ -11456,6 +11564,14 @@ Partial Class Ventas
End If
+ Dim DebeGenerarMovimiento As Boolean = TmpDT.COUNT("CvePS", "CveTipoPS = 2") > 0
+ 'VERIFICA QUE SE REALIZO EL MOVIMIENTO DE ALMACEN
+ If DebeGenerarMovimiento AndAlso UsuarioActual.CveEmpresa = 141 AndAlso UsuarioActual.Empresa.Funcionalidad(567) = "1" AndAlso factura.TipoDocto.Contiene("Ing", "Egs", "Rem") Then
+ If Not (ObjInventario.GetInv_Mov(factura.CveVenta, UsuarioActual.CveEmpresa) AndAlso ObjInventario.DtResultados.Rows.Count > 0) Then
+ OcurrioError = True
+ End If
+ End If
+
End If
Catch ex As Exception
@@ -14355,6 +14471,8 @@ Partial Class Ventas
If Not DdlVendedor.SelectedValue.ToEntero() > 0 Then
DdlVendedor.SelectedValueExist(UsuarioActual.CveVendedor.ToString())
End If
+
+ TxtCorreoNotificaciones.Text = GlobalDTUsuarios(UsuarioActual.CveUsuario).FiltroPrimeroValor("Correo")
End Sub
#End Region
@@ -16143,6 +16261,9 @@ Partial Class Ventas
GuardaLog($"LOG IPP: Ventas LN: 10033. - DtRemisionesTmpDT.Rows.Count: {DtRemisionesTmpDT.Rows.Count} - ObjInventario.DtResultados.FiltraParametros('CvePS > 0').Rows.Count: {ObjInventario.DtResultados.FiltraParametros("CvePS > 0").Rows.Count} Ex:{ex.Message}")
DtMovimientosDetalles = New DataTable
End Try
+
+ 'SE FILTRAN LOS MOVIMIENTOS DE LA PARTE QUE SE FACTURA DE LA REMISION
+ DtMovimientos = DtMovimientosDetalles.FiltraParametros("", DistinctColumns:={"CveMovimiento"})
Else
DtMovimientosDetalles = ObjInventario.DtResultados.FiltraParametros("CvePS > 0")
End If