Beispiel #1
0
        public BATCH_ARTICLE BATCH_ARTICLE_NEW(AFN_LOTE_ARTICULOS lote_old)
        {
            var lote_new = new BATCH_ARTICLE();

            lote_new.aproval_state_id  = EstadoAprobacion.ByCode(lote_old.estado_aprov).id;
            lote_new.descrip           = lote_old.descripcion;
            lote_new.purchase_date     = (DateTime)lote_old.fecha_compra;
            lote_new.initial_price     = (decimal)lote_old.precio_inicial;
            lote_new.initial_life_time = (int)lote_old.vida_util_inicial;
            lote_new.account_date      = (DateTime)lote_old.fecha_ing;
            lote_new.origin_id         = origenes.ByCode(lote_old.origen).id;
            lote_new.type_asset_id     = Tipos.ByDescrip(lote_old.consistencia).id;

            //Analizo documento a migrar
            if (lote_old.num_doc != DOCUMENTS.defaultDocument)
            {
                var new_doc = DOCUMENT_NEW_PREV(lote_old);
                var new_rel = new DOCS_BATCH();
                new_rel.DOCUMENT        = new_doc;
                new_rel.BATCHS_ARTICLES = lote_new;

                _context.DOCS_BATCH.AddObject(new_rel);
            }
            else
            {
                //ingreso solo lote, sin documento asociado
                _context.BATCHS_ARTICLES.AddObject(lote_new);
            }
            _context.SaveChanges();
            _load_batches_articles();
            return(lote_new);
        }
Beispiel #2
0
        private RespuestaAccion ChangeStateAF(int codigo_lote, GENERIC_VALUE StateSet)
        {
            var respuesta = new RespuestaAccion();

            try
            {
                BATCH_ARTICLE lote = (from b in _context.BATCHS_ARTICLES
                                      where b.id == codigo_lote
                                      select b)
                                     .First();
                if (lote.origin_id == 2)    //OBC
                {
                    ASSET_IN_PROGRESS_HEAD[] salidas = (from aph in _context.ASSETS_IN_PROGRESS_HEAD
                                                        where aph.batch_id == codigo_lote
                                                        select aph).ToArray();
                    foreach (var salida in salidas)
                    {
                        salida.aproval_state_id = StateSet.id;
                    }
                }
                lote.aproval_state_id = StateSet.id;
                _context.SaveChanges();
                respuesta.set_ok();
            }
            catch (Exception e)
            {
                respuesta.set(-1, e.StackTrace);
            }

            return(respuesta);
        }
Beispiel #3
0
        public RespuestaAccion INGRESO_LOTE(string descripcion, DateTime fecha_compra, string cod_proveedor, string documento, decimal total_compra, int vida_util, bool derecho_credito, DateTime fecha_contab, int origen_id, GENERIC_VALUE CtiPo)
        {
            var respuesta = new RespuestaAccion();

            try
            {
                //check document
                var find_doc     = documentos.ByNumProv(documento, cod_proveedor);
                var lote_rel_doc = new DOCS_BATCH();
                if (find_doc == null)
                {
                    //no existe documento asociado, lo creamos
                    var nuevo_documento = new DOCUMENT();
                    nuevo_documento.docnumber      = documento;
                    nuevo_documento.comment        = string.Empty;
                    nuevo_documento.proveedor_id   = cod_proveedor;
                    nuevo_documento.proveedor_name = Proveedor.getNameByCode(cod_proveedor);
                    lote_rel_doc.DOCUMENT          = nuevo_documento;
                }
                else
                {
                    //ya existe, asi que usamos ese mismo
                    lote_rel_doc.document_id = find_doc.id;
                }

                BATCH_ARTICLE nuevo_lote = new BATCH_ARTICLE();
                nuevo_lote.aproval_state_id  = EstadoAprobacion.OPEN.id;
                nuevo_lote.descrip           = descripcion;
                nuevo_lote.purchase_date     = fecha_compra;
                nuevo_lote.initial_price     = total_compra;
                nuevo_lote.initial_life_time = vida_util;
                nuevo_lote.account_date      = fecha_contab;
                nuevo_lote.origin_id         = origen_id;
                nuevo_lote.type_asset_id     = CtiPo.id;

                lote_rel_doc.BATCHS_ARTICLES = nuevo_lote;

                _context.DOCS_BATCH.AddObject(lote_rel_doc);
                _context.BATCHS_ARTICLES.AddObject(nuevo_lote);

                _context.SaveChanges();

                respuesta.set_ok();
                respuesta.result_objs.Add((SV_BATCH_ARTICLE)nuevo_lote);
            }
            catch (Exception e)
            {
                respuesta.set(-1, e.StackTrace);
            }
            return(respuesta);
        }
Beispiel #4
0
        public RespuestaAccion MODIFICA_LOTE(int batch_id, string descripcion, string cod_proveedor, string documento, decimal total_compra, int vida_util, DateTime fecha_contab)
        {
            //TODO: Completar proceso para modificar un lote
            var res = new RespuestaAccion();

            try
            {
                BATCH_ARTICLE ToModif = (from c in _context.BATCHS_ARTICLES
                                         where c.id == batch_id
                                         select c).FirstOrDefault();
                if (ToModif == null)
                {
                    res.set(-2, "Codigo de lote a modificar no existe");
                    return(res);
                }
                ToModif.descrip           = descripcion;
                ToModif.initial_price     = total_compra;
                ToModif.initial_life_time = vida_util;
                ToModif.account_date      = fecha_contab;
                //ToModif.purchase_date //por definición no puede modificarse
                //ToModif.origin_id //por definición no puede modificarse
                //ToModif.type_asset_id //por definición no puede modificarse

                //Reviso documento
                if (documento != DOCUMENTS.defaultDocument && cod_proveedor != DOCUMENTS.defaultProveed)
                {
                    DOCUMENT DocModif = (from d in _context.DOCUMENTS
                                         where d.docnumber == documento && d.proveedor_id == cod_proveedor
                                         select d).FirstOrDefault();
                    if (DocModif == null)
                    {
                        //no existe el documento, se debe crear y asociar
                        DOCUMENT DocNuevo = new DOCUMENT();
                        DocNuevo.proveedor_id   = cod_proveedor;
                        DocNuevo.docnumber      = documento;
                        DocNuevo.comment        = string.Empty;
                        DocNuevo.proveedor_name = Proveedor.getNameByCode(cod_proveedor);

                        //reviso asociaciones previas del lote
                        var allowRelations = (from rl in _context.DOCS_BATCH
                                              where rl.batch_id == batch_id
                                              select rl).FirstOrDefault();
                        if (allowRelations == null)
                        {
                            var relation = new DOCS_BATCH();
                            relation.BATCHS_ARTICLES = ToModif;
                            relation.DOCUMENT        = DocNuevo;
                            _context.DOCS_BATCH.AddObject(relation);
                        }
                        else
                        {
                            //documento existe, se debe actualizar la asociacion
                            allowRelations.DOCUMENT = DocNuevo;
                        }
                    }
                    else
                    {
                        //reviso asociaciones previas
                        var allowRelations = (from rl in _context.DOCS_BATCH
                                              where rl.batch_id == batch_id
                                              select rl).FirstOrDefault();
                        if (allowRelations == null)
                        {
                            //documento existe y debe asociar al batch
                            var relation = new DOCS_BATCH();
                            relation.BATCHS_ARTICLES = ToModif;
                            relation.DOCUMENT        = DocModif;
                        }
                        else
                        {
                            //documento existe, se debe actualizar la asociacion
                            allowRelations.DOCUMENT = DocModif;
                        }
                    }
                }
                _context.SaveChanges();

                res.set_ok();
            }
            catch (Exception ex)
            {
                res.set(-1, ex.StackTrace);
            }
            return(res);
        }