Exemplo n.º 1
0
        private void Insert()
        {
            _cal_Igv();
            try
            {
                if (cabecera_valida())
                {
                    #region Datos de Cabecera
                    var BL = new tb_ad_movimientosBL();
                    var BE = new tb_ad_movimientos();

                    var Detalle = new tb_ad_movimientos.Item();
                    var ListaItems = new List<tb_ad_movimientos.Item>();

                    var Detalle2 = new tb_ad_movimientos.Tarjetas();
                    var ListaTarjetas = new List<tb_ad_movimientos.Tarjetas>();

                    BE.moduloid = modulo;
                    BE.local = local;
                    BE.tipodoc = tipodoc.SelectedValue.ToString();
                    BE.serdoc = serdoc.Text.Trim();
                    BE.numdoc = numdoc.Text.ToString();
                    BE.fechdoc = Convert.ToDateTime(fechdoc.Text);
                    BE.moneda = moneda.SelectedValue.ToString().Trim();
                    BE.tcamb = Convert.ToDecimal(tcamb.Text.Trim());

                    if (tipguia.Text.Trim().Length > 0 && serguia.Text.Trim().Length > 0 && numguia.Text.Trim().Length > 0)
                    {
                        almacaccionid = "21";
                        BE.almacaccionid = almacaccionid.ToString();
                    }
                    else
                    {
                        BE.almacaccionid = almacaccionid.Trim();
                    }

                    BE.tipoperacionid = tip_operacion.ToString();
                    BE.ctacteaccionid = string.Empty;
                    BE.ctacte = ctacte.Text.Trim().ToUpper();
                    BE.nmruc = nmruc.Text.Trim();
                    BE.ctactename = ctactename.Text.Trim().ToUpper();
                    BE.direcnume = direcnume.Trim().ToUpper();
                    BE.vendorid = vendperid.Text.ToString();

                    if (serfac.Text.Trim().Length > 0 && numfac.Text.Trim().Length > 0)
                    {
                        BE.tipfac = tipfac.SelectedItem.ToString();
                        BE.serfac = serfac.Text.Trim().ToString().PadLeft(4, '0');
                        BE.numfac = numfac.Text.Trim().ToString().PadLeft(10, '0');
                        if (!fechfac.IsEmpty)
                        {
                            BE.fechfac = Convert.ToDateTime(fechfac.Text.Trim());
                        }

                        //BE.recep_name = recep_name.Text.Trim();
                        //BE.recep_dni = recep_dni.Text.Trim();
                        //if (!recep_fecha.IsEmpty)
                        //{
                        //    BE.recep_fecha = Convert.ToDateTime(recep_fecha.Text.Trim());
                        //}
                    }

                    if (serguia.Text.Trim().Length > 0 && numguia.Text.Trim().Length > 0)
                    {
                        BE.tipguia = tipguia.Text.Trim();
                        BE.serguia = serguia.Text.Trim().ToString().PadLeft(4, '0');
                        BE.numguia = numguia.Text.Trim().ToString().PadLeft(10, '0');
                        if (!fechguia.IsEmpty)
                        {
                            BE.fechguia = Convert.ToDateTime(fechguia.Text.Trim());
                        }
                    }

                    if (sernotac.Text.Trim().Length > 0 && numnotac.Text.Trim().Length > 0)
                    {
                        BE.tipnotac = tipnotac.Text.Trim();
                        BE.sernotac = sernotac.Text.Trim().ToString().PadLeft(4, '0');
                        BE.numnotac = numnotac.Text.Trim().ToString().PadLeft(10, '0');
                        if (!fechnotac.IsEmpty)
                        {
                            BE.fechnotac = Convert.ToDateTime(fechnotac.Text.Trim());
                        }
                    }

                    BE.tipimptoid = tipimptotasa.SelectedValue.ToString().Trim();
                    BE.incprec = Equivalencias.Left(cbo_incprec.Text.Trim(), 1);
                    BE.items = Convert.ToDecimal(itemsT.Text.Trim());
                    BE.totpzas = Convert.ToDecimal(totpzas.Text.Trim());
                    BE.tasaigv = igv;
                    BE.totimpto = Convert.ToDecimal(totimpto.Text.Trim());
                    BE.valventa = Convert.ToDecimal(valventa.Text.Trim());
                    BE.totimporte = Convert.ToDecimal(totimporte.Text.Trim());
                    BE.glosa = glosa.Text.Trim().ToUpper().ToString();
                    // Venta en Combo
                    // BE.princombo = princombo.Checked;
                    // BE.cantcombo = Convert.ToInt32(canticombo.Text.ToString());
                    // BE.preccombo = Convert.ToDecimal(preccombo.Text.ToString());
                    //
                    //try
                    //{
                    //    BE.fechcancel = Convert.ToDateTime("01/01/1900");
                    //}
                    //catch
                    //{
                    //    BE.fechcancel = Convert.ToDateTime("01/01/1900");
                    //}

                    BE.tipdid = string.Empty;
                    //BE.statborrado = string.Empty;
                    //BE.clientetipo = string.Empty;
                    //BE.modofactu = string.Empty;
                    //BE.tipodocmanejaserie = tipodocmanejaserie;
                    BE.ncaja = _cajanume.ToString();
                    BE.perianio = fechdoc.Value.Year.ToString();
                    BE.perimes = fechdoc.Value.Month.ToString().PadLeft(2, '0');
                    BE.status = "0";
                    BE.usuar = VariablesPublicas.Usuar;

                    // Agregando Datos de Cabecera
                    if (TablaTarjetas.Rows.Count > 0)
                    {
                        //BE.Tarjetaid = Convert.ToInt32(TablaTarjetas.Rows[0]["tarjetaid"].ToString());
                        //BE.Tarjnumoper = TablaTarjetas.Rows[0]["tarjetanume"].ToString();
                        BE.tarjimporte = Convert.ToDecimal(importtarj.Text);
                    }

                    if (txtefectivo.Text.Length > 0)
                    { BE.efectivo = Convert.ToDecimal(txtefectivo.Text); }
                    else { BE.efectivo = 0; }

                    #endregion

                    /*****************************************************/

                    #region Detalle - Movimientos
                    var item = 0;
                    foreach (DataRow fila in Tabladetallemov.Rows)
                    {
                        Detalle = new tb_ad_movimientos.Item();
                        item++;
                        Detalle.fechdoc = Convert.ToDateTime(fechdoc.Text);
                        Detalle.tipoperacionid = "01";
                        Detalle.ctacte = ctacte.Text.Trim().ToUpper();
                        Detalle.direcnume = direcnume.Trim().ToUpper();
                        Detalle.itemref = fila["itemref"].ToString();
                        Detalle.productid = fila["productid"].ToString();
                        Detalle.productname = fila["productname"].ToString();
                        Detalle.ubicacion = fila["ubicacion"].ToString();
                        Detalle.unmed = fila["unmed"].ToString();

                        Detalle.cantidad = Convert.ToDecimal(fila["cantidad"].ToString());

                        Detalle.valor = Convert.ToDecimal(fila["valor"].ToString());
                        Detalle.importe = Convert.ToDecimal(fila["importe"].ToString());

                        Detalle.precioanterior = Convert.ToDecimal(fila["precioanterior"].ToString());

                        Detalle.precunit = Convert.ToDecimal(fila["precunit"].ToString());
                        Detalle.importfac = Convert.ToDecimal(fila["importfac"].ToString());
                        Detalle.totimpto = Convert.ToDecimal(fila["totimpto"].ToString());

                        Detalle.almacaccionid = almacaccionid;
                        Detalle.statcostopromed = statcostopromed.Trim();
                        Detalle.tasaigv = igv;

                        Detalle.status = "0";
                        Detalle.usuar = VariablesPublicas.Usuar;

                        if (fila["productid"].ToString().Trim().Length == 13
                            && Convert.ToDecimal(fila["cantidad"]) > 0
                            && Convert.ToDecimal(fila["importfac"]) > 0)
                        {
                            ListaItems.Add(Detalle);
                        }
                        else
                        {
                            if (Convert.ToBoolean(fila["nostock"]) == true)
                            {
                                ListaItems.Add(Detalle);
                            }
                            else
                            {
                                MessageBox.Show("Documento DETALLE EN FORMATO INCORRECTO !!!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                                return;
                            }
                        }
                    }

                    if (ListaItems.Count == 0)
                    {
                        MessageBox.Show("DOCUMENTO SIN DETALLE Y/O DETALLE INCORRECTO !!!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        return;
                    }

                    #endregion

                    BE.ListaItems = ListaItems;

                    #region Detalle - Tarjetas
                    foreach (DataRow fila in TablaTarjetas.Rows)
                    {
                        Detalle2 = new tb_ad_movimientos.Tarjetas();
                        Detalle2.tarjetaid = Convert.ToInt32(fila["tarjetaid"].ToString());
                        Detalle2.tarjnumoper = fila["tarjetanume"].ToString();
                        Detalle2.moneda = moneda.SelectedValue.ToString();
                        Detalle2.tcamb = Convert.ToDecimal(tcamb.Text);
                        Detalle2.tarjimporte = Convert.ToDecimal(fila["tarjetaimpo"].ToString());
                        Detalle2.status = "0";
                        Detalle2.usuar = VariablesPublicas.Usuar.ToString();

                        if (Convert.ToInt32(fila["tarjetaimpo"].ToString()) > 0)
                        {
                            ListaTarjetas.Add(Detalle2);
                        }
                        else
                        {
                            MessageBox.Show("Documento DETALLE TARJETAS EN FORMATO INCORRECTO ...!!!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                            return;
                        }
                    }

                    BE.ListaTarjetas = ListaTarjetas;

                    #endregion

                    if (BL.Insert(EmpresaID, BE))
                    {
                        NIVEL_FORMS();
                        //Blanquear();
                        form_bloqueado(false);
                        tipodoc.Enabled = false;
                        btn_nuevo.Enabled = true;
                        btn_grabar.Enabled = false;
                        btn_imprimir.Enabled = true;
                        btnImprimirNoval.Enabled = true;

                        btn_primero.Enabled = true;
                        btn_anterior.Enabled = true;
                        btn_siguiente.Enabled = true;
                        btn_ultimo.Enabled = true;
                        btn_salir.Enabled = true;
                    }
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }