439 lines
17 KiB
C#
439 lines
17 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Web;
|
|
using System.Web.UI;
|
|
using System.Web.UI.WebControls;
|
|
using Extensiones;
|
|
using System.Data;
|
|
|
|
public partial class Contabilidad_ContabilizacionCompras : ClsPaginas
|
|
{
|
|
private DataTable DTmpC
|
|
{
|
|
get
|
|
{
|
|
return (DataTable)ViewState["DTmpC"];
|
|
}
|
|
set
|
|
{
|
|
ViewState["DTmpC"] = value;
|
|
}
|
|
}
|
|
|
|
public bool TienePermisoEditar
|
|
{
|
|
get { return (bool)ViewState["TienePermisoEditar"]; }
|
|
set { ViewState["TienePermisoEditar"] = value; }
|
|
}
|
|
|
|
public bool TienePermisoVerPoliza
|
|
{
|
|
get { return (bool)ViewState["TienePermisoVerPoliza"]; }
|
|
set { ViewState["TienePermisoVerPoliza"] = value; }
|
|
}
|
|
|
|
|
|
protected void Page_Load(object sender, EventArgs e)
|
|
{
|
|
if (!IsPostBack)
|
|
{
|
|
TienePermisoVerPoliza = false;
|
|
TienePermisoEditar = false;
|
|
DdlProveedores.setEsWebService(true);
|
|
DdlProveedores.Attributes.Add("data-metodo", "getproveedores");
|
|
if (UsuarioActual.Empresa.TipoContabilidad == 2 && UsuarioActual.Empresa.UsaContabilidad)
|
|
{
|
|
TienePermisoEditar = false;
|
|
ClsContPAQi ObjCont = new ClsContPAQi(UsuarioActual.Empresa);
|
|
ObjCont.GetCuentas(-1, "-1", -1);
|
|
string[] columnas = new string[3] { "Id", "CuentaFormato", "Nombre" };
|
|
DTmpC = ObjCont.DtResultados.FiltraParametros("", "", columnas);
|
|
ObjCont.Dispose();
|
|
|
|
//DdlProveedores.DataSource = get_GlobalDTCompProveedores(UsuarioActual.CveEmpresa);
|
|
//DdlProveedores.DataBind();
|
|
|
|
//CargaDatos();
|
|
|
|
}
|
|
|
|
DdlPersonal.DataSource = get_GlobalDTRHPersonal(UsuarioActual.CveEmpresa);
|
|
DdlPersonal.DataBind();
|
|
|
|
DdlPlantillasPolizas.DataSource = get_GlobalDTContaPlantillasPolizas(UsuarioActual.CveEmpresa);
|
|
DdlPlantillasPolizas.Items.Insert(0, new ListItem("Todos", "-1"));
|
|
DdlPlantillasPolizas.DataBind();
|
|
|
|
txtFechaI.Text = DateTime.Now.FirstDayOfMonth().AddMonths(-1).ToShortDateString();
|
|
txtFechaF.Text = DateTime.Now.ToShortDateString();
|
|
|
|
if (UsuarioActual.CveRol == 1 || UsuarioActual.CveUsuario == 17 || UsuarioActual.CveUsuario == 171 || UsuarioActual.TienePermisoProceso(221))
|
|
{
|
|
TienePermisoEditar = true;
|
|
TienePermisoVerPoliza = true;
|
|
}
|
|
|
|
txtFechaI.Text = DateTime.Now.ToShortDateString();
|
|
txtFechaF.Text = DateTime.Now.ToShortDateString();
|
|
//else
|
|
//{
|
|
// Alert("Este módulo requiere el uso de Contabilidad.", ModExtensiones.TipoMensaje.MsgAdvertencia);
|
|
// // BtnConsultar.Enabled = false;
|
|
// BtnContabilizarCompras.Enabled = false;
|
|
// BtnContabilizarPagos.Enabled = false;
|
|
// BtnContabilizarAnticipos.Enabled = false;
|
|
// BtnContabilizarAmortizaciones.Enabled = false;
|
|
//}
|
|
|
|
}
|
|
|
|
BtnConsultar.Click += new EventHandler(this.BtnConsultar_Click);
|
|
BtnContabilizarCompras.Click += new EventHandler(this.BtnGuardarCompras_Click);
|
|
BtnContabilizarPagos.Click += new EventHandler(this.BtnGuardarPagos_Click);
|
|
BtnContabilizarAnticipos.Click += new EventHandler(this.BtnGuardarAnticipos_Click);
|
|
BtnContabilizarAmortizaciones.Click += new EventHandler(this.BtnGuardarAmortizaciones_Click);
|
|
}
|
|
|
|
protected void OnRowDataBound(object sender, GridViewRowEventArgs e)
|
|
{
|
|
if (e.Row.RowType == DataControlRowType.DataRow)
|
|
{
|
|
GridView GvD = e.Row.FCGridView("GvD");
|
|
int CvePrePoliza = e.Row.DataKey("CvePrePoliza").ToEntero();
|
|
|
|
e.Row.Cells[0].ToolTip = CvePrePoliza.ToString();
|
|
|
|
ClsContabilidad contP = new ClsContabilidad();
|
|
|
|
if (contP.GetContabilizacionDiarioDetalle(CvePrePoliza, UsuarioActual.CveEmpresa))
|
|
{
|
|
if (contP.DtResultados.Rows.Count > 0)
|
|
{
|
|
decimal Abonos = 0;
|
|
decimal Cargos = 0;
|
|
decimal Dif = (decimal)0.01;
|
|
|
|
Abonos = Math.Round(contP.DtResultados.SUMD("Abono"), 2);
|
|
Cargos = Math.Round(contP.DtResultados.SUMD("Cargo"), 2);
|
|
|
|
if (Math.Abs(Cargos - Abonos) >= Dif)
|
|
{
|
|
e.Row.FCCheckBox("Chk").Enabled = false;
|
|
e.Row.FCCheckBox("Chk").ToolTip = string.Format("Cargos y abonos diferentes (${0}-${1}, dif${2})", Cargos, Abonos, Cargos-Abonos);
|
|
}
|
|
|
|
if (e.Row.DBCampo("IdPoliza").ToEntero() > 0)
|
|
{
|
|
e.Row.FCCheckBox("Chk").Enabled = false;
|
|
e.Row.FCCheckBox("Chk").ToolTip = "Póliza ya contabilizada";
|
|
}
|
|
GvD.DataSource = contP.DtResultados;
|
|
}
|
|
else
|
|
{
|
|
e.Row.Visible = false;
|
|
}
|
|
}
|
|
|
|
if (TienePermisoEditar)
|
|
{
|
|
e.Row.FCHyperLink("HplEdicion").Visible = true;
|
|
}
|
|
|
|
if (UsuarioActual.Empresa.TipoContabilidad == 1) // conta SIG
|
|
{
|
|
e.Row.FCHyperLink("HLPoliza").Visible = TienePermisoVerPoliza & e.Row.DBCampo("FolioPoliza").ToEntero() > 0;
|
|
e.Row.FCHyperLink("HLPoliza").Text = $"Póliza: {e.Row.DBCampo("FolioPoliza")}";
|
|
e.Row.FCHyperLink("HLPoliza").NavigateUrl = $"/Contabilidad/RegPrePolizas.aspx?CvePrePoliza={e.Row.DBCampo("CvePrePoliza")}";
|
|
}
|
|
else
|
|
{
|
|
if (UsuarioActual.Empresa.TipoContabilidad == 2) // conta Contpaq
|
|
{
|
|
e.Row.FCHyperLink("HLPoliza").Visible = TienePermisoVerPoliza & e.Row.DBCampo("IdPoliza").ToEntero() > 0;
|
|
e.Row.FCHyperLink("HLPoliza").NavigateUrl = $"/Contabilidad/RegPoliza.aspx?IdPoliza={e.Row.DBCampo("IdPoliza")}";
|
|
}
|
|
}
|
|
|
|
contP.Dispose();
|
|
GvD.DataBind();
|
|
if (e.Row.DBCampo("Moneda") == "USD" && e.Row.FCLinkButton("LBActualizarTC") != null)
|
|
{
|
|
e.Row.FCLinkButton("LBActualizarTC").Visible = true;
|
|
}
|
|
}
|
|
}
|
|
|
|
private void Contabilizar(int CvePrepoliza, DateTime Fecha, string Concepto, ClsContabilidad Obj)
|
|
{
|
|
if (Obj.ContabilizarPrePoliza(CvePrepoliza, UsuarioActual.CveUsuario, UsuarioActual.Empresa, Fecha, Concepto))
|
|
{
|
|
}
|
|
}
|
|
|
|
private void BtnGuardarCompras_Click(object sender, EventArgs e)
|
|
{
|
|
ClsContabilidad ObjMov = new ClsContabilidad();
|
|
|
|
foreach (GridViewRow row in GvPrePolizaCompras.Rows)
|
|
{
|
|
CheckBox chk = row.FCCheckBox("Chk");
|
|
TextBox txtFecha = row.FCTextBox("TxtFechaCompras");
|
|
TextBox txtConcepto = row.FCTextBox("TxtConceptoCompras");
|
|
|
|
if (chk != null && chk.Checked)
|
|
{
|
|
DateTime Fecha = txtFecha.Text.ToDate();
|
|
int CvePrepoliza = GvPrePolizaCompras.DataKeys[row.RowIndex]["CvePrePoliza"].ToString().ToEntero();
|
|
string Concepto = txtConcepto.Text;
|
|
|
|
Contabilizar(CvePrepoliza, Fecha, Concepto, ObjMov);
|
|
}
|
|
}
|
|
ObjMov.Dispose();
|
|
|
|
Alert("Se Contabilizaron Correctamente los Siguientes Folios: <br>" + ObjMov.AlertaMensaje.ToString(), ModExtensiones.TipoMensaje.MsgInformacion);
|
|
CargaDatos();
|
|
}
|
|
|
|
private void BtnGuardarPagos_Click(object sender, EventArgs e)
|
|
{
|
|
ClsContabilidad ObjMov = new ClsContabilidad();
|
|
|
|
foreach (GridViewRow row in GvPrePolizaPagos.Rows)
|
|
{
|
|
CheckBox chk = row.FCCheckBox("Chk");
|
|
TextBox txtFecha = row.FCTextBox("TxtFechaPagos");
|
|
TextBox txtConcepto = row.FCTextBox("TxtConceptoPagos");
|
|
|
|
if (chk != null && chk.Checked)
|
|
{
|
|
DateTime Fecha = txtFecha.Text.ToDate();
|
|
int CvePrepoliza = GvPrePolizaPagos.DataKeys[row.RowIndex]["CvePrePoliza"].ToString().ToEntero();
|
|
string Concepto = txtConcepto.Text;
|
|
|
|
Contabilizar(CvePrepoliza, Fecha, Concepto, ObjMov);
|
|
}
|
|
}
|
|
ObjMov.Dispose();
|
|
|
|
Alert("Se Contabilizaron Correctamente los Siguientes Folios: <br>" + ObjMov.AlertaMensaje.ToString(), ModExtensiones.TipoMensaje.MsgInformacion);
|
|
CargaDatos();
|
|
}
|
|
|
|
private void BtnGuardarAnticipos_Click(object sender, EventArgs e)
|
|
{
|
|
ClsContabilidad ObjMov = new ClsContabilidad();
|
|
|
|
foreach (GridViewRow row in GvPrePolizaAnticipos.Rows)
|
|
{
|
|
CheckBox chk = row.FCCheckBox("Chk");
|
|
TextBox txtFecha = row.FCTextBox("TxtFechaAnticipos");
|
|
TextBox txtConcepto = row.FCTextBox("TxtConceptoAnticipos");
|
|
|
|
if (chk != null && chk.Checked)
|
|
{
|
|
DateTime Fecha = txtFecha.Text.ToDate();
|
|
int CvePrepoliza = GvPrePolizaAnticipos.DataKeys[row.RowIndex]["CvePrePoliza"].ToString().ToEntero();
|
|
string Concepto = txtConcepto.Text;
|
|
|
|
Contabilizar(CvePrepoliza, Fecha, Concepto, ObjMov);
|
|
}
|
|
}
|
|
ObjMov.Dispose();
|
|
|
|
Alert("Se Contabilizaron Correctamente los Siguientes Folios: <br>" + ObjMov.AlertaMensaje.ToString(), ModExtensiones.TipoMensaje.MsgInformacion);
|
|
CargaDatos();
|
|
}
|
|
|
|
private void BtnGuardarAmortizaciones_Click(object sender, EventArgs e)
|
|
{
|
|
ClsContabilidad ObjMov = new ClsContabilidad();
|
|
foreach (GridViewRow row in GvPrePolizaAmortizaciones.Rows)
|
|
{
|
|
CheckBox chk = row.FCCheckBox("Chk");
|
|
TextBox txtFecha = row.FCTextBox("TxtFechaAmortizaciones");
|
|
TextBox txtConcepto = row.FCTextBox("TxtConceptoAmortizaciones");
|
|
|
|
if (chk != null && chk.Checked)
|
|
{
|
|
DateTime Fecha = txtFecha.Text.ToDate();
|
|
int CvePrepoliza = GvPrePolizaAmortizaciones.DataKeys[row.RowIndex]["CvePrePoliza"].ToString().ToEntero();
|
|
string Concepto = txtConcepto.Text;
|
|
|
|
Contabilizar(CvePrepoliza, Fecha, Concepto, ObjMov);
|
|
}
|
|
}
|
|
ObjMov.Dispose();
|
|
|
|
Alert("Se Contabilizaron Correctamente los Siguientes Folios: <br>" + ObjMov.AlertaMensaje.ToString(), ModExtensiones.TipoMensaje.MsgInformacion);
|
|
CargaDatos();
|
|
}
|
|
|
|
protected void BtnConsultar_Click(object sender, EventArgs e)
|
|
{
|
|
CargaDatos();
|
|
}
|
|
|
|
private void CargaDatos()
|
|
{
|
|
DateTime FechaI = txtFechaI.Text.ToDate();
|
|
DateTime FechaF = txtFechaF.Text.ToDate();
|
|
var EstatusContabilizacion = DdlEstatusContabilizacion.SelectedValue.ToEntero();
|
|
int CveProveedor = -1;
|
|
if (DdlProveedores.SelectedValue.ToEntero() > 0) CveProveedor = DdlProveedores.SelectedValue.ToEntero();
|
|
|
|
|
|
|
|
ClsContabilidad cont = new ClsContabilidad();
|
|
|
|
// Cargamos las Compras
|
|
if (cont.GetContabilizacionDiario(UsuarioActual.CveEmpresa, 1, FechaI, FechaF, CveProveedor, DdlPersonal.SelectedValue.ToEntero(), DdlTipoProveedor.SelectedValue.ToEntero(), DdlMoneda.SelectedValue.ToEntero(), DdlPlantillasPolizas.SelectedValue.ToEntero(), EstatusContabilizacion))
|
|
{
|
|
GvPrePolizaCompras.DataSource = cont.DtResultados;
|
|
GvPrePolizaCompras.DataBind();
|
|
}
|
|
|
|
// Cargamos los pagos
|
|
if (cont.GetContabilizacionDiario(UsuarioActual.CveEmpresa, 2, FechaI, FechaF, CveProveedor, DdlPersonal.SelectedValue.ToEntero(), DdlTipoProveedor.SelectedValue.ToEntero(), DdlMoneda.SelectedValue.ToEntero(), DdlPlantillasPolizas.SelectedValue.ToEntero(), EstatusContabilizacion))
|
|
{
|
|
|
|
GvPrePolizaPagos.DataSource = cont.DtResultados;
|
|
GvPrePolizaPagos.DataBind();
|
|
}
|
|
|
|
// Cargamos las amortizaciones
|
|
if (cont.GetContabilizacionDiario(UsuarioActual.CveEmpresa, 101, FechaI, FechaF, CveProveedor, DdlPersonal.SelectedValue.ToEntero(), DdlTipoProveedor.SelectedValue.ToEntero(), DdlMoneda.SelectedValue.ToEntero(), DdlPlantillasPolizas.SelectedValue.ToEntero(), EstatusContabilizacion))
|
|
{
|
|
GvPrePolizaAmortizaciones.DataSource = cont.DtResultados;
|
|
GvPrePolizaAmortizaciones.DataBind();
|
|
}
|
|
|
|
cont.Dispose();
|
|
|
|
UpGvCompras.Update();
|
|
UpGvPagos.Update();
|
|
UpGvAnticipos.Update();
|
|
UpGvAmortizaciones.Update();
|
|
}
|
|
|
|
protected void GvD_RowDataBound(object sender, GridViewRowEventArgs e)
|
|
{
|
|
if (e.Row.RowType == DataControlRowType.DataRow)
|
|
{
|
|
int cuenta = e.Row.DataKey("IdCtaContable").ToString().ToEntero();
|
|
int cvecuenta = e.Row.DataKey("CveCuenta").ToString().ToEntero();
|
|
int CveConcepto = e.Row.DBCampo("CveConceptoContable").ToEntero();
|
|
|
|
if (CveConcepto.Contiene(5, 6, 14, 16, 17, 19, 206, 22, 23, 25, 26, 18, 60, 183, 184, 185, 186 ,205, 240, 243, 244, 248, 249,15,22,248,249,237,312))
|
|
{
|
|
e.Row.FCHyperLink("HplC").NavigateUrl = string.Format("/Compras/Compras.aspx?CveCompra={0}", e.Row.DBCampo("CveCompra"));
|
|
}
|
|
if (CveConcepto.Contiene(30, 204))
|
|
{
|
|
e.Row.FCHyperLink("HplC").NavigateUrl = string.Format("/Bancos/IE.aspx?CveIE={0}", e.Row.DBCampo("CveIE"));
|
|
}
|
|
if (CveConcepto.Contiene(2, 4, 13, 61, 38, 39))
|
|
{
|
|
e.Row.FCHyperLink("HplC").NavigateUrl = string.Format("/Ventas/Ventas.aspx?CveVenta={0}", e.Row.DBCampo("CveVenta"));
|
|
}
|
|
if (CveConcepto.Contiene(28, 29))
|
|
{
|
|
e.Row.FCHyperLink("HplC").NavigateUrl = string.Format("/RH/Personal.aspx?CvePersonal={0}", e.Row.DBCampo("CvePersonal"));
|
|
}
|
|
if (CveConcepto.Contiene(68))
|
|
{
|
|
e.Row.FCHyperLink("HplC").NavigateUrl = string.Format("/Inventarios/EntradasSalidas.aspx?CveMovimiento={0}", e.Row.DBCampo("CveMovimientoAlmacen"));
|
|
}
|
|
if (CveConcepto.Contiene(176,177,228,229,232,233))
|
|
{
|
|
e.Row.FCHyperLink("HplC").NavigateUrl = string.Format("/OC/OC.aspx?OC={0}", e.Row.DBCampo("CveOC"));
|
|
}
|
|
|
|
if (UsuarioActual.Empresa.TipoContabilidad == 1) // conta SIG
|
|
{
|
|
if (cvecuenta == 0)
|
|
{
|
|
e.Row.Cells[0].ForeColor = System.Drawing.Color.Red;
|
|
((GridViewRow)((GridView)e.Row.NamingContainer).BindingContainer).FCCheckBox("Chk").Visible = false;
|
|
}
|
|
|
|
}
|
|
else
|
|
{
|
|
if (UsuarioActual.Empresa.TipoContabilidad == 2) // conta Contpaq
|
|
{
|
|
|
|
if (cuenta > 0)
|
|
{
|
|
DataRow dr = DTmpC.FiltroPrimero(String.Format("Id = {0}", cuenta));
|
|
|
|
if (dr != null) e.Row.Cells[3].Text = string.Format("{0}<br/>{1}", dr["CuentaFormato"], dr["Nombre"]);
|
|
}
|
|
else
|
|
{
|
|
e.Row.Cells[0].ForeColor = System.Drawing.Color.Red;
|
|
|
|
((GridViewRow)((GridView)e.Row.NamingContainer).BindingContainer).FCCheckBox("Chk").Enabled = false;
|
|
((GridViewRow)((GridView)e.Row.NamingContainer).BindingContainer).FCCheckBox("Chk").ToolTip = "Hay conceptos sin cuenta asignada";
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
if (Convert.ToDecimal(e.Row.DataKey("Cargo").ToString()) == 0) e.Row.Cells[4].Text = "";
|
|
|
|
if (Convert.ToDecimal(e.Row.DataKey("Abono").ToString()) == 0) e.Row.Cells[5].Text = "";
|
|
|
|
}
|
|
}
|
|
|
|
|
|
protected void LnkSimplificar_Click(object sender, EventArgs e)
|
|
{
|
|
ClsContabilidad ObjMov = new ClsContabilidad();
|
|
|
|
LinkButton btn = (LinkButton)sender;
|
|
GridViewRow row = (GridViewRow)btn.NamingContainer;
|
|
int index = Convert.ToInt32(row.RowIndex);
|
|
|
|
int CvePrePoliza = GvPrePolizaPagos.DataKeys[row.RowIndex]["CvePrePoliza"].ToString().ToEntero();
|
|
|
|
if (ObjMov.PrePolizaSimplificacion(CvePrePoliza, UsuarioActual.CveEmpresa))
|
|
{
|
|
Alert("Se ha simplificado la poliza correctamente", ModExtensiones.TipoMensaje.MsgInformacion);
|
|
}
|
|
else
|
|
{
|
|
Alert("Ocurrió un error al simplificar la póliza", ModExtensiones.TipoMensaje.MsgError);
|
|
}
|
|
|
|
ObjMov.Dispose();
|
|
CargaDatos();
|
|
}
|
|
|
|
protected void LnkSimplificarCompra_Click(object sender, EventArgs e)
|
|
{
|
|
ClsContabilidad ObjMov = new ClsContabilidad();
|
|
|
|
LinkButton btn = (LinkButton)sender;
|
|
GridViewRow row = (GridViewRow)btn.NamingContainer;
|
|
int index = Convert.ToInt32(row.RowIndex);
|
|
|
|
int CvePrePoliza = GvPrePolizaCompras.DataKeys[row.RowIndex]["CvePrePoliza"].ToString().ToEntero();
|
|
|
|
if (ObjMov.PrePolizaSimplificacion(CvePrePoliza, UsuarioActual.CveEmpresa))
|
|
{
|
|
Alert("Se ha simplificado la poliza correctamente", ModExtensiones.TipoMensaje.MsgInformacion);
|
|
}
|
|
else
|
|
{
|
|
Alert("Ocurrió un error al simplificar la póliza", ModExtensiones.TipoMensaje.MsgError);
|
|
}
|
|
|
|
ObjMov.Dispose();
|
|
CargaDatos();
|
|
}
|
|
|
|
} |