//ANULAR LA FACTURA
 public static void CO_DetOrdenCompraFact_mnt02(EOrdenCompraFactura doc)
 {
     DBAccess db = new DBAccess();
     db.AddParameter("@pid_empresa", doc.Id_empresa);
     db.AddParameter("@pid_periodo", doc.Id_periodo);
     db.AddParameter("@pid_ordenco", doc.Id_ordenco);
     db.AddParameter("@pnu_secuen", doc.Nu_secuen);
     db.AddParameter("@pid_uupdarec", doc.Id_uupdarec);
     db.ExecuteNonQuery("CO_OrdenCompraFactura_mnt02");
 }
        public static List<EOrdenCompraFactura> mListarOrdenCompraFact2(EOrdenCompraFactura oc)
        {
            DBAccess db = new DBAccess();
            db.AddParameter("@pchr_idperiodo", oc.Id_periodo);
            db.AddParameter("@pchr_idordenco", oc.Id_ordenco);
            db.AddParameter("@pchr_idEmpresa", oc.Id_empresa);

            List<EOrdenCompraFactura> result = new List<EOrdenCompraFactura>();

            using (IDataReader rdr = db.ExecuteReader("CO_ocFactura_qry02"))
            {
                while (rdr.Read())
                {
                    result.Add(mCargarOrdenCompraFact(rdr));
                }
            }
            return result;
        }
        private static EOrdenCompraFactura mCargarOrdenCompraFact(IDataReader rdr)
        {
            EOrdenCompraFactura oCompra = new EOrdenCompraFactura();
               //oCompra.Id_periodo = rdr.IsDBNull(rdr.GetOrdinal("id_periodo")) ? String.Empty : rdr.GetString(rdr.GetOrdinal("id_periodo"));
               //oCompra.Id_ordenco = rdr.IsDBNull(rdr.GetOrdinal("id_ordenco")) ? String.Empty : rdr.GetString(rdr.GetOrdinal("id_ordenco"));
               oCompra.Nu_secuen = rdr.IsDBNull(rdr.GetOrdinal("nu_secuen")) ? String.Empty : rdr.GetString(rdr.GetOrdinal("nu_secuen"));
               oCompra.Id_docucom = rdr.IsDBNull(rdr.GetOrdinal("id_docucom")) ? String.Empty : rdr.GetString(rdr.GetOrdinal("id_docucom"));
               oCompra.Nu_docum = rdr.IsDBNull(rdr.GetOrdinal("nu_docum")) ? String.Empty : rdr.GetString(rdr.GetOrdinal("nu_docum"));

               oCompra.Fe_docum = Convert.ToDateTime(rdr.IsDBNull(rdr.GetOrdinal("fe_docum")) ? String.Empty : rdr.GetString(rdr.GetOrdinal("fe_docum")));

               oCompra.Mt_docum = rdr.IsDBNull(rdr.GetOrdinal("mt_docum")) ? 0 : rdr.GetDecimal(rdr.GetOrdinal("mt_docum"));

               oCompra.ds_observa = rdr.IsDBNull(rdr.GetOrdinal("ds_observa")) ? String.Empty : rdr.GetString(rdr.GetOrdinal("ds_observa"));

               //oCompra.Id_empresa = rdr.IsDBNull(rdr.GetOrdinal("id_empresa")) ? String.Empty : rdr.GetString(rdr.GetOrdinal("id_empresa"));
               return oCompra;
        }
 /// <summary>
 /// Anular la factura
 /// </summary>
 /// <param name="oc"></param>
 public static void OrderCompraFact_mnt02(EOrdenCompraFactura oc)
 {
     DOrdenCompraFactura.CO_DetOrdenCompraFact_mnt02(oc);
 }
        private void NuevoItem2()
        {
            List<EOrdenCompraFactura> lstFact = new List<EOrdenCompraFactura>();

            EOrdenCompraFactura fact = new EOrdenCompraFactura();

            //llega a ingresar siempre en cuando ya se tenga un registro en la grilla
            string str = Convert.ToString(dgvDetalle.Rows.Count + 1);

                // Añande el primer item en blando de la grilla
                fact.Nu_secuen = "001";
                fact.Id_docucom = "001";
                fact.Nu_docum = "";
                fact.Fe_docum = Convert.ToDateTime(null);
                fact.Mt_docum = Convert.ToDecimal("0.000");
                fact.ds_observa = "";
                lstFact.Add(fact);

                btnAprobar.Enabled = false;
                btnAutorizar.Enabled = false;
                lblStAprobado.Text = "";
                lblStAutorizado.Text = "";
                //Muestra la grilla con un fila en blanco

                dgvDetalle.DataSource = lstFact;

                //dgProducto.DataBind();
        }
 public static List<EOrdenCompraFactura> mListarOcompraFactura2(EOrdenCompraFactura oCompra)
 {
     return DOrdenCompraFactura.mListarOrdenCompraFact2(oCompra);
 }
        private void NuevoItem()
        {
            List<EOrdenCompraFactura> lstFact= new List<EOrdenCompraFactura>();

            EOrdenCompraFactura fact = new EOrdenCompraFactura();

            //llega a ingresar siempre en cuando ya se tenga un registro en la grilla
            string str = Convert.ToString(dgvDetalle.Rows.Count + 1);
            if (dgvDetalle.Rows.Count > 0)
            {
                //almacena en la entidad la informacion ingresada en la grilla
                //salva los datos, hace que cuando se de agregar no se pierda la informacion ya ingresada

                mSalvarDatosGrilla();
                lstFact = (List<EOrdenCompraFactura>)SalvarDatos;

                //lstAsigHorario = (List<AsignacionHorarioEnt>)(Session["SeslstSalvaDatos"]);
                //añade un registro mas en blaco

                fact.Nu_secuen = str.PadLeft(3, '0');
                fact.Id_docucom = "001";
                fact.Nu_docum = "";
                fact.Fe_docum = Convert.ToDateTime(null);
                fact.Mt_docum = Convert.ToDecimal("0.000");
                fact.ds_observa = "";

                // muestra el item en blanco

                lstFact.Add(fact);

                dgvDetalle.DataSource = lstFact;

            }
            else
            {
                // Añande el primer item en blando de la grilla
                fact.Nu_secuen = "001";
                fact.Id_docucom = "001";
                fact.Nu_docum = "";
                fact.Fe_docum = Convert.ToDateTime(null);
                fact.Mt_docum = Convert.ToDecimal("0.000");
                fact.ds_observa = "";
                lstFact.Add(fact);

                //Muestra la grilla con un fila en blanco

                dgvDetalle.DataSource = lstFact;

                //dgProducto.DataBind();

            }
        }
        private void mSalvarDatosGrilla()
        {
            try
            {
                //recorre la cantidad de items, por cada item la entidad oAsigHorario va almacenando ,
                //esto para que data que se va ingresando en la grilla no se pierda

                List<EOrdenCompraFactura> lstSalvarDatos = new List<EOrdenCompraFactura>();

                for (int i = 0; dgvDetalle.Rows.Count > i; i++)
                {
                    // la entidad almacena los items de la grilla

                    EOrdenCompraFactura oFact = new EOrdenCompraFactura();

                    // verificar si los valores ingresados en la grilla estan en label o texbox como tambien en un dropdowlinst
                    oFact.Nu_secuen = dgvDetalle.Rows[i].Cells["Item"].Value.ToString();
                    oFact.Id_docucom = dgvDetalle.Rows[i].Cells["TipDoc"].Value.ToString();
                    oFact.Nu_docum = dgvDetalle.Rows[i].Cells["nuDocumento"].Value.ToString();
                    oFact.Fe_docum = Convert.ToDateTime(dgvDetalle.Rows[i].Cells["fecDocumento"].Value.ToString());
                    oFact.Mt_docum = Convert.ToDecimal(dgvDetalle.Rows[i].Cells["Total"].Value);
                    oFact.ds_observa = dgvDetalle.Rows[i].Cells["ds_observa"].Value.ToString();

                    //añade los valores de la entidad a la lista de la entidad

                    lstSalvarDatos.Add(oFact);

                }
                // se crea una sesion para almacenar la lista que contiene los  datos.

                SalvarDatos = lstSalvarDatos;
            }
            catch (Exception ex)
            {

                ex.ToString();
            }
        }
        private void mCargarDatos()
        {
            //dgvDetalle.Rows.Clear();
            try
            {

                if (!string.IsNullOrEmpty(txtOc.Text))
                {
                    EOrdenCompra oCompra = new EOrdenCompra();

                    oCompra.Id_periodo = wfChgEmpPer.datos.idperiodo; //llenar con sesion
                    oCompra.Id_ordenco = string.IsNullOrEmpty(txtOc.Text.PadLeft(7, '0')) ? string.Empty : Convert.ToString(txtOc.Text.PadLeft(7, '0'));
                    oCompra.idEmpresa = wfChgEmpPer.datos.idEmpresa;

                    List<EOrdenCompra> oListDato = BOrdenCompra.CO_Oc_qry05(oCompra);

                        string val = oListDato[0].existe;

                        if (val == "0")
                        {

                            //----------------------------------------------------------------

                            EOrdenCompraFactura oCompraF = new EOrdenCompraFactura();

                            oCompraF.Id_periodo = wfChgEmpPer.datos.idperiodo; //llenar con sesion
                            oCompraF.Id_ordenco = string.IsNullOrEmpty(txtOc.Text.PadLeft(7, '0')) ? string.Empty : Convert.ToString(txtOc.Text.PadLeft(7, '0'));
                            oCompraF.Id_empresa = wfChgEmpPer.datos.idEmpresa;
                            //----------------------------------------------------------------
                            EOrdenCompra oBtieneOC = new EOrdenCompra();

                            oBtieneOC = BOrdenCompra.mObtenerOC_(oCompra);

                            txtOc.Text = oBtieneOC.Id_ordenco.ToString().Trim();
                            txtFechaOC.Text = oBtieneOC.Fe_ordenco.ToString().Trim();
                            txtTotal.Text = oBtieneOC.Mt_total.ToString().Trim();
                            cbmoneda.SelectedValue = oBtieneOC.Id_vmoneda.Trim();
                            txtObservacion.Text = oBtieneOC.Ds_observa.ToString().Trim();

                            txtProveedor.Text = oBtieneOC.clipro.ToString().Trim();

                            //Hddidproveedor.Value = oBtieneOC.Id_clipro.ToString().Trim();
                            lblStAutorizado.Text =  oBtieneOC.st_autorizado.ToString();
                            lblStAprobado.Text = oBtieneOC.stordenco.ToString();

                            List<EOrdenCompraFactura> lstoc = new List<EOrdenCompraFactura>();

                            //lstoc = BOrdenCompraFactura.mListarOcompraFactura2(oCompraF);

                            dgvDetalle.DataSource = BOrdenCompraFactura.mListarOcompraFactura2(oCompraF);

                            if (lblStAutorizado.Text == "(TRANSITO)")
                            {
                                btnAutorizar.Enabled = true;
                            }
                            else
                            {
                                btnAutorizar.Enabled = false;

                            }

                            if (lblStAprobado.Text == "(TRANSITO)")
                            {
                                btnAprobar.Enabled = true;
                            }
                            else
                            {
                                btnAprobar.Enabled = false;
                            }

                            if (lblStAutorizado.Text == "(TRANSITO)" && lblStAprobado.Text == "(TRANSITO)")
                            {
                                btnAprobar.Enabled = false;
                            }

                            getCalculo();
                        }
                        else
                        {

                            MessageBox.Show("Datos no existen", "Advertencia", MessageBoxButtons.OK, MessageBoxIcon.Error);
                            Limpiar(groupBox1);
                            NuevoItem2();

                        }

                }
            }
            catch (Exception ex)
            {
                ex.ToString();
            }
        }
        private void cmdEliminarRow_Click(object sender, EventArgs e)
        {
            mSalvarDatosGrilla();

            var LblNum_Secuen = dgvDetalle.CurrentRow.Cells["Item"].Value;

            //lblIdProducto = hddCodigo.Value;

            EOrdenCompraFactura doc = new EOrdenCompraFactura();
            doc.Id_empresa = wfChgEmpPer.datos.idEmpresa; //llenar con sesion
            doc.Id_periodo = wfChgEmpPer.datos.idperiodo; // llenar con sesion
            doc.Id_ordenco = txtOc.Text;
            doc.Nu_secuen = LblNum_Secuen.ToString();
            doc.Id_uupdarec = frmLogin.d.id;  //llenar con sesion
            BOrdenCompraFactura.OrderCompraFact_mnt02(doc);

            //--------------------------------------------/

            //int fila = e.RowIndex;
            int u = dgvDetalle.CurrentCell.RowIndex;
            List<EOrdenCompraFactura> lsListadoActual = (List<EOrdenCompraFactura>)SalvarDatos;

            lsListadoActual.RemoveAt(u);
            SalvarDatos = lsListadoActual;
            //BOrdenCompraFactura.OrderCompraFact_mnt02(lsListadoActual);
            dgvDetalle.DataSource = lsListadoActual;

            getCalculo();
        }
        private void btnGrabar_Click(object sender, EventArgs e)
        {
            try
            {

                EOrdenCompraFactura ocf = new EOrdenCompraFactura();

                //------------------------Detalle de compra Factura----------------------------------------------------

                for (int i = 0; dgvDetalle.Rows.Count > i; i++)
                {
                    //prodxUnd.Id_producto = txtidProducto.Text;

                    var lblItem = dgvDetalle.Rows[i].Cells["Item"].Value;
                    var LbltipDoc = dgvDetalle.Rows[i].Cells["TipDoc"].Value;
                    var LblDocumento = dgvDetalle.Rows[i].Cells["nuDocumento"].Value;
                    var LblfeDocumento = dgvDetalle.Rows[i].Cells["fecDocumento"].Value;
                    var LblTotal = dgvDetalle.Rows[i].Cells["Total"].Value;

                    ocf.Id_periodo = wfChgEmpPer.datos.idperiodo;//llenar con sesion
                    ocf.Id_ordenco = txtOc.Text;

                    ocf.Nu_secuen = lblItem.ToString();
                    ocf.Id_docucom = LbltipDoc.ToString();
                    ocf.Nu_docum = LblDocumento.ToString();
                    ocf.Mt_docum = Convert.ToDecimal(LblTotal);

                    ocf.Fe_docum =  Convert.ToDateTime(LblfeDocumento.ToString());

                    ocf.Id_ucrearec = frmLogin.d.id; //LLENAR DESDE LA SESION
                    ocf.Id_uupdarec = frmLogin.d.id; //LLENAR DESDE LA SESION
                    ocf.St_anulado = "0";
                    ocf.Id_empresa = wfChgEmpPer.datos.idEmpresa;  //LLENAR DESDE LA SESION
                    BOrdenCompraFactura.OrderCompraFact_mnt01(ocf);

                    lblmensaje.Text = "Factura Grabada";

                }
                MessageBox.Show("Datos grabados", "Advertencia", MessageBoxButtons.OK, MessageBoxIcon.Information);
                //getCalculo();
            }
            catch (Exception ex)
            {
                ex.ToString();
                MessageBox.Show("Error de ingreso", "Advertencia", MessageBoxButtons.OK, MessageBoxIcon.Error);

            }
        }