public RespuestaAccion REGISTER_PURCHASE_HEAD(GENERIC_VALUE part, DateTime fecha_compra, GENERIC_VALUE zona, GENERIC_VALUE subzona, GENERIC_VALUE clase, GENERIC_VALUE subclase, GENERIC_VALUE categoria, GENERIC_VALUE gestion, string usuario) { var res = new RespuestaAccion(); try { //List<TRANSACTION_HEADER> generados = new List<TRANSACTION_HEADER>(); TRANSACTION_HEADER nueva_cab = new TRANSACTION_HEADER(); nueva_cab.article_part_id = part.id; nueva_cab.head_index = GetNextHeadIndex(part.id); nueva_cab.trx_ini = fecha_compra; nueva_cab.trx_end = _final_date; nueva_cab.ref_source = _ref_purchase; nueva_cab.zone_id = zona.id; nueva_cab.subzone_id = subzona.id; nueva_cab.kind_id = clase.id; nueva_cab.subkind_id = subclase.id; nueva_cab.category_id = categoria.id; nueva_cab.user_own = usuario; nueva_cab.manage_id = gestion.id; nueva_cab.method_revalue_id = 1; //por defecto será 1, luego el usuario podrá indicar el definitivo //generados.Add(nueva_cab); _context.TRANSACTIONS_HEADERS.AddObject(nueva_cab); _context.SaveChanges(); res.result_objs.Add((SV_TRANSACTION_HEADER)nueva_cab); res.set_ok(); } catch (Exception ex) { res.set(-1, ex.StackTrace); } return(res); }
//public RespuestaAccion REGISTER_SALE_HEAD(int parteId, DateTime fechaVenta, SV_TRANSACTION_HEADER prevHead, string userName) //{ // var Vventa = Vigencias.VENTA(); // return REGISTER_DOWNS_HEAD(parteId, fechaVenta, prevHead, userName, Vventa); //} //public RespuestaAccion REGISTER_DISPOSAL_HEAD(int parteId, DateTime fechaVenta, SV_TRANSACTION_HEADER prevHead, string userName) //{ // var Vcastigo = Vigencias.CASTIGO(); // return REGISTER_DOWNS_HEAD(parteId, fechaVenta, prevHead, userName, Vcastigo); //} public RespuestaAccion REGISTER_DOWNS_HEAD(int parteId, DateTime fechaBaja, SV_TRANSACTION_HEADER prevHead, string userName, SV_VALIDATY tipo_baja) { var res = new RespuestaAccion(); string reference = ""; switch (tipo_baja.id) { case 2: reference = _ref_sales; break; case 3: reference = _ref_disposal; break; default: reference = _ref_error; break; } try { TRANSACTION_HEADER headDown = new TRANSACTION_HEADER(); headDown.article_part_id = parteId; headDown.head_index = GetNextHeadIndex(parteId); headDown.trx_ini = fechaBaja; headDown.trx_end = prevHead.trx_end; headDown.ref_source = reference; headDown.zone_id = prevHead.zone_id; headDown.subzone_id = prevHead.subzone_id; headDown.kind_id = prevHead.kind_id; headDown.subkind_id = prevHead.subkind_id; headDown.category_id = prevHead.category_id; headDown.user_own = userName; headDown.manage_id = prevHead.manage_id; headDown.method_revalue_id = prevHead.method_revalue_id; TRANSACTION_HEADER _prevHead = (from h in _context.TRANSACTIONS_HEADERS where h.id == prevHead.id select h).FirstOrDefault(); _prevHead.trx_end = fechaBaja; _context.TRANSACTIONS_HEADERS.AddObject(headDown); _context.SaveChanges(); res.set_ok(); res.result_objs.Add((SV_TRANSACTION_HEADER)headDown); } catch (Exception ex) { res.set(-1, ex.StackTrace); } return(res); }
public RespuestaAccion MODIF_PURCHASE_HEAD(SV_PART parte, GENERIC_VALUE zona, GENERIC_VALUE subzona, GENERIC_VALUE subclase, GENERIC_VALUE categoria, GENERIC_VALUE gestion, string usuario) { var res = new RespuestaAccion(); //TODO: completar proceso de modificacion de cabecera para compras try { int contar = 0; //foreach (SV_PART SPart in parte.Where(p => p.first_date == firstFecha)) //{ TRANSACTION_HEADER ToModif = (from h in _context.TRANSACTIONS_HEADERS where h.article_part_id == parte.id && h.trx_ini == parte.first_date select h).FirstOrDefault(); if (ToModif == null) { res.set(-2, "No existe una cabecera valida para la parte solicitada"); return(res); } //ToModif.article_part_id //No se puede cambiar //ToModif.trx_ini //Por definición no se puede cambiar //ToModif.trx_end //Por definición no se puede cambiar //ToModif.ref_source //Por definición no se puede cambiar ToModif.zone_id = zona.id; ToModif.subzone_id = subzona.id; //ToModif.kind_id //Por definición no se puede cambiar ToModif.subkind_id = subclase.id; ToModif.category_id = categoria.id; ToModif.user_own = usuario; ToModif.manage_id = gestion.id; //ToModif.method_revalue_id //No se cambia durante este proceso contar++; res.result_objs.Add((GENERIC_VALUE)(SV_TRANSACTION_HEADER)ToModif); //} if (contar > 0) { _context.SaveChanges(); res.set_ok(); } else { res.set(-3, "No existen una parte valida asociada a la compra"); } } catch (Exception ex) { res.set(-1, ex.StackTrace); } return(res); }
public TRANSACTION_HEADER TRANSACTION_HEAD_NEW(SV_TRANSACTION_HEADER Tprevious, AFN_INVENTARIO source) //para migracion { DateTime PurchaseDate = (from a in _context.BATCHS_ARTICLES join b in _context.PARTS on a.id equals b.article_id where b.id == Tprevious.article_part_id select a.purchase_date).First(); var head = new TRANSACTION_HEADER(); head.article_part_id = Tprevious.article_part_id; head.head_index = GetNextHeadIndex(Tprevious.article_part_id); head.trx_ini = source.fecha_inicio; head.trx_end = Tprevious.trx_end; head.ref_source = ref_source(source.fecha_inicio, source, PurchaseDate); head.zone_id = zonas.ByCode(source.zona).id; head.subzone_id = (int)source.subzona + 1; head.kind_id = Clases.ByCode(source.clase).id; head.subkind_id = subclases.ByCode(source.subclase).id; head.category_id = categorias.ByCode(source.categoria).id; head.user_own = source.ingresado_por; int cGest; if (Int32.TryParse(source.gestion.ToString(), out cGest)) { head.manage_id = cGest; } else { head.manage_id = null; } head.method_revalue_id = 1; _context.TRANSACTIONS_HEADERS.AddObject(head); //actualizo la fecha fin de la cabecera previa var prev_head = (from h in _context.TRANSACTIONS_HEADERS where h.id == Tprevious.id select h).First(); prev_head.trx_end = source.fecha_inicio; _context.SaveChanges(); if (head.id == 0) { _context.ObjectStateManager.ChangeObjectState(head, System.Data.EntityState.Added); } _load_transactions_headers(); return(head); }
public RespuestaAccion REGISTER_CHANGE_HEAD(int parteId, DateTime fechaCambio, GENERIC_VALUE newZona, GENERIC_VALUE newSubzona, SV_TRANSACTION_HEADER prevHead, string userName) { var res = new RespuestaAccion(); //TODO: crear ingreso de transaccion de venta try { TRANSACTION_HEADER headChange = new TRANSACTION_HEADER(); headChange.article_part_id = parteId; headChange.head_index = GetNextHeadIndex(parteId); headChange.trx_ini = fechaCambio; headChange.trx_end = prevHead.trx_end; headChange.ref_source = _ref_change; headChange.zone_id = newZona.id; headChange.subzone_id = newSubzona.id; headChange.kind_id = prevHead.kind_id; headChange.subkind_id = prevHead.subkind_id; headChange.category_id = prevHead.category_id; headChange.user_own = userName; headChange.manage_id = prevHead.manage_id; headChange.method_revalue_id = prevHead.method_revalue_id; TRANSACTION_HEADER _prevHead = (from h in _context.TRANSACTIONS_HEADERS where h.id == prevHead.id select h).FirstOrDefault(); _prevHead.trx_end = fechaCambio; _context.TRANSACTIONS_HEADERS.AddObject(headChange); _context.SaveChanges(); res.set_ok(); res.result_objs.Add((SV_TRANSACTION_HEADER)headChange); } catch (Exception ex) { res.set(-1, ex.StackTrace); } return(res); }
public RespuestaAccion CREATE_NEW_PART_FROM(int batch_id, int source_part_id, int quantity, DateTime movement_date) { var res = new RespuestaAccion(); try { var source_part = Partes.ById(source_part_id); int current_max_index = Partes.ByLote(batch_id).Max(p => p.part_index); //creo nueva parte var nueva_parte = new PART(); nueva_parte.article_id = batch_id; nueva_parte.part_index = current_max_index + 1; nueva_parte.quantity = quantity; nueva_parte.first_date = movement_date; _context.PARTS.AddObject(nueva_parte); //actualizo cantidad parte antigua var busca = _context.PARTS.Where(p => p.id == source_part_id).FirstOrDefault(); busca.quantity = source_part.quantity - quantity; //copio transacciones a la nueva parte y sus relacionados desde la parte origen //copio cabeceras de transacciones var source_trx_heads = cabeceras.ByParte(source_part_id); foreach (SV_TRANSACTION_HEADER s_trx_head in source_trx_heads) { TRANSACTION_HEADER nueva_head = new TRANSACTION_HEADER(); nueva_head.PART = nueva_parte; //con este relacionamos a la nueva parte nueva_head.head_index = s_trx_head.head_index; nueva_head.trx_ini = s_trx_head.trx_ini; nueva_head.trx_end = s_trx_head.trx_end; nueva_head.ref_source = s_trx_head.ref_source; nueva_head.zone_id = s_trx_head.zone_id; nueva_head.subzone_id = s_trx_head.subzone_id; nueva_head.kind_id = s_trx_head.kind_id; nueva_head.subkind_id = s_trx_head.subkind_id; nueva_head.category_id = s_trx_head.category_id; nueva_head.user_own = s_trx_head.user_own; nueva_head.manage_id = s_trx_head.manage_id; nueva_head.method_revalue_id = s_trx_head.method_revalue_id; _context.TRANSACTIONS_HEADERS.AddObject(nueva_head); //copio detalles de transacciones var source_trx_details = detalles.GetByHead(s_trx_head.id); foreach (SV_TRANSACTION_DETAIL s_trx_detail in source_trx_details) { TRANSACTION_DETAIL nuevo_detail = new TRANSACTION_DETAIL(); nuevo_detail.TRANSACTION_HEADER = nueva_head; //con este relacionamos a la nueva cabecera nuevo_detail.system_id = s_trx_detail.system_id; nuevo_detail.validity_id = s_trx_detail.validity_id; nuevo_detail.depreciate = s_trx_detail.depreciate; nuevo_detail.allow_credit = s_trx_detail.allow_credit; _context.TRANSACTIONS_DETAILS.AddObject(nuevo_detail); } //copio detalle de parametros de transaccion var source_trx_params = DetallesParametros.ByHead(s_trx_head.id); foreach (SV_TRANSACTION_PARAMETER_DETAIL s_trx_param in source_trx_params) { TRANSACTION_PARAMETER_DETAIL nuevo_param = new TRANSACTION_PARAMETER_DETAIL(); nuevo_param.TRANSACTION_HEADER = nueva_head; //con este relacionamos a la nueva cabecera nuevo_param.system_id = s_trx_param.system_id; nuevo_param.paratemer_id = s_trx_param.paratemer_id; nuevo_param.parameter_value = s_trx_param.parameter_value; _context.TRANSACTIONS_PARAMETERS_DETAILS.AddObject(nuevo_param); } } _context.SaveChanges(); _load_parts(); _load_transactions_headers(); _load_transactions_details(); _load_transactions_param_details(); res.result_objs.Add((SV_PART)nueva_parte); res.set_ok(); } catch (Exception ex) { res.set(-1, ex.StackTrace); } return(res); }