public static int AgregarLote(string lote, RNPedimento pedimento, string articulo, DateTime caducidad, int contador, int cve_Almacen, string status, DateTime modificacion, int NumEmpresa)
 {
     try
     {
         RNConexion conexion = new RNConexion(NumEmpresa);
         conexion.baseDatos.AbrirConexion();
         conexion.baseDatos.LimpiarParametros();
         int indice = RNLbInventory.ObtenerIndice(48, NumEmpresa);
         conexion.baseDatos.LimpiarParametros();
         conexion.baseDatos.AgregarParametro("@articulo", articulo);
         conexion.baseDatos.AgregarParametro("@Lote", lote);
         conexion.baseDatos.AgregarParametro("@pedimento", pedimento.numPedimento);
         conexion.baseDatos.AgregarParametro("@NOM_ADUAN", pedimento.Aduana);
         conexion.baseDatos.AgregarParametro("@CIUDAD", pedimento.Ciudad);
         conexion.baseDatos.AgregarParametro("@FRONTERA", pedimento.Frontera);
         conexion.baseDatos.AgregarParametro("@GLN", pedimento.GLN);
         conexion.baseDatos.AgregarParametro("@FCHADUANA", pedimento.Fecha);
         conexion.baseDatos.AgregarParametro("@reg_ltpd", indice);
         conexion.baseDatos.AgregarParametro("@cve_Almacen", cve_Almacen);
         conexion.baseDatos.AgregarParametro("@caducidad", caducidad);
         conexion.baseDatos.AgregarParametro("@modificacion", modificacion);
         conexion.baseDatos.AgregarParametro("@contador", contador);
         conexion.baseDatos.AgregarParametro("@status", status);
         var response = conexion.baseDatos.EjecutarSinConsulta("insert into ltpd{0} (    CVE_ART ,LOTE,PEDIMENTO,CVE_ALM ,CANTIDAD,FCHCADUC ,FCHULTMOV,REG_LTPD, CVE_OBS, STATUS,PEDIMENTOSAT,NOM_ADUAN,CIUDAD,FRONTERA,GLN,FCHADUANA) " +
                                                               "VALUES(@articulo, @lote, @pedimento, @cve_Almacen,@contador,@caducidad, @modificacion,@reg_ltpd ,0, @status, @pedimento,@NOM_ADUAN,@CIUDAD,@FRONTERA,@GLN,@FCHADUANA)") > 0;
         return(indice);
     }
     catch (Exception e)
     {
         MessageBox.Show("Error al validar Lotes:  " + e.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
         return(0);
     }
 }
        public static void GenerarRecepcion(DataGridView dataGridCompras, string cveDoc, int numEmpresa, RNPedimento pedimento)
        {
            try
            {
                List <Lotes> lotes = new List <Lotes>();
                // se obtiene el folio y la clave de la Recepción
                int    folio          = 0;
                string cveDocRecpcion = GenerarRecepcion("r", null, numEmpresa, out folio);
                List <RNPartidasRecepcion> partidas = new List <RNPartidasRecepcion>();
                // se crea el documento de recepción y sus partidas
                //registrar cabecera y patidas
                RNOrdenRecepcion recepcion = new RNOrdenRecepcion().GenerarRecepcion(cveDoc, cveDocRecpcion, folio, numEmpresa, out partidas);


                for (int fila = 0; fila < dataGridCompras.Rows.Count; fila++)
                {
                    for (int col = 8; col < dataGridCompras.Rows[fila].Cells.Count; col = col + 2)
                    {
                        if (lotes.Any(x => x.lote == dataGridCompras.Rows[fila].Cells[col].Value.ToString()))
                        {
                            foreach (var l in lotes)
                            {
                                if (l.lote == dataGridCompras.Rows[fila].Cells[col].Value.ToString())
                                {
                                    l.contador++;
                                }
                            }
                        }
                        else
                        {
                            Lotes lotes1 = new Lotes();
                            lotes1.articulo  = dataGridCompras.Rows[fila].Cells[6].Value.ToString();
                            lotes1.contador  = 1;
                            lotes1.lote      = dataGridCompras.Rows[fila].Cells[col].Value.ToString();
                            lotes1.caducidad = Convert.ToDateTime(dataGridCompras.Rows[fila].Cells[col + 1].Value.ToString());
                            lotes1.partida   = Convert.ToInt32(dataGridCompras.Rows[fila].Cells[0].Value.ToString());
                            lotes.Add(lotes1);
                        }
                    }
                }
                foreach (var l in lotes)
                {
                    if (ValidarLote(l.lote, pedimento.numPedimento, numEmpresa))
                    {
                        l.reg_ltpd        = AgregarLote(l.lote, pedimento, l.articulo, l.caducidad, l.contador, 1, "A", DateTime.Now, numEmpresa);
                        l.reg_ltpd_Enlace = RNLbInventory.RegistrarEnlace(l.reg_ltpd, l.contador, numEmpresa);
                        l.minve_id        = RNLbInventory.RegistrarMovInveRecepcion(partidas.Where(x => x.NUM_PAR == l.partida).FirstOrDefault(), recepcion, l.reg_ltpd_Enlace, 1, numEmpresa);
                    }
                    else
                    {
                        l.reg_ltpd        = ActualizarLote(l.lote, pedimento.numPedimento, l.articulo, l.caducidad, l.contador, 1, "A", DateTime.Now, numEmpresa);
                        l.reg_ltpd_Enlace = RNLbInventory.RegistrarEnlace(l.reg_ltpd, l.contador, numEmpresa);
                        l.minve_id        = RNLbInventory.RegistrarMovInveRecepcion(partidas.Where(x => x.NUM_PAR == l.partida).FirstOrDefault(), recepcion, l.reg_ltpd_Enlace, 1, numEmpresa);
                    }

                    RNPartidasRecepcion.ActualizarPartida(recepcion.CVE_DOC, l.partida, l.reg_ltpd_Enlace, l.minve_id, numEmpresa);
                    RNLbInventory.ActualizarExistencias(partidas.Where(x => x.NUM_PAR == l.partida).FirstOrDefault().CVE_ART, recepcion.NUM_ALMA, 1, partidas.Where(x => x.NUM_PAR == l.partida).FirstOrDefault().CANT, numEmpresa);
                }
                if (RNLbInventory.ObtenerImportadora().NumEmpresa == numEmpresa)
                {
                    RNRemision.GenerarRemision(recepcion, partidas, lotes);
                    GenerarRecepcionComercializadora(recepcion, partidas, lotes, pedimento);
                }
            }
            catch (Exception e)
            {
                MessageBox.Show("Error al generar la recepción:  " + e.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
 public static void GenerarRecepcionComercializadora(RNOrdenRecepcion recepcion, List <RNPartidasRecepcion> partidas, List <Lotes> lotes, RNPedimento pedimento)
 {
     int              numEmpresa                = RNLbInventory.ObtenerComercializadora().NumEmpresa;
     int              folio                     = 0;
     string           cveDocRecpcion            = GenerarRecepcion("r", null, numEmpresa, out folio);
     RNOrdenRecepcion recepcioncomercializadora = new RNOrdenRecepcion().GenerarRecepcion(recepcion, partidas, cveDocRecpcion, folio, numEmpresa, lotes);
 }