public ActionResult Adddetail(string ma_phieu_header, List <StatementDetail> details) { using (var dbConn = Helpers.OrmliteConnection.openConn()) { try { if (accessDetail.sua) { foreach (var item in details) { StatementDetail newdata = new StatementDetail(); newdata.ma_phieu_header = ma_phieu_header; newdata.ma_san_pham = item.ma_san_pham; newdata.so_luong = item.so_luong; newdata.thong_so_ky_thuat = item.thong_so_ky_thuat; newdata.muc_dich_su_dung = ""; newdata.nguoi_tao = currentUser.ma_nguoi_dung; newdata.ma_pyc_header = item.ma_pyc_header; newdata.ma_nha_cung_cap = item.ma_nha_cung_cap; newdata.don_gia_vat = item.don_gia_vat; newdata.don_gia = item.don_gia; newdata.thue_vat = item.thue_vat; newdata.don_vi_tinh = item.don_vi_tinh; newdata.ma_chinh_sach_gia = item.ma_chinh_sach_gia; newdata.ma_don_vi = item.ma_don_vi; newdata.ngay_tao = DateTime.Now; newdata.ngay_cap_nhat = DateTime.Parse("1900-01-01"); newdata.nguoi_cap_nhat = ""; newdata.trang_thai = ""; newdata.noi_dung_xac_nhan_ton_kho = item.noi_dung_xac_nhan_ton_kho; newdata.noi_dung_xac_nhan_cap_3 = item.noi_dung_xac_nhan_cap_3; newdata.ma_chi_nhanh = item.ma_chi_nhanh; dbConn.Insert <StatementDetail>(newdata); //PRequestDetail detail = dbConn.FirstOrDefault<PRequestDetail>(s => s.ma_phieu_header == item.ma_pyc_header && s.ma_san_pham == item.ma_san_pham && s.ma_nha_cung_cap == item.ma_nha_cung_cap); PRequestDetail detail = dbConn.FirstOrDefault <PRequestDetail>(s => s.id == item.id); detail.ma_to_trinh = ma_phieu_header; dbConn.Update(detail); } } else { return(Json(new { success = false, error = "Bạn không có quyền sửa dữ liệu" })); } return(Json(new { success = true, ma_phieu_header = ma_phieu_header })); } catch (Exception ex) { return(Json(new { success = false, error = ex.Message })); } } }
public ActionResult CreateUpdate(POHeader data, List <PODetail> details) { using (var dbConn = Helpers.OrmliteConnection.openConn()) { try { int id = 0; if (accessDetail.them) { string ma_phieu = ""; var loai = "PO"; //var ma_don_vi = currentUser.ma_don_vi; var yyMMdd = DateTime.Now.ToString("yyMMdd"); var existLast = dbConn.SingleOrDefault <POHeader>("SELECT TOP 1 * FROM POHeader ORDER BY id DESC"); var nextNo = 0; var yearNow = int.Parse(DateTime.Now.Year.ToString().Substring(2, 2)); if (existLast != null) { nextNo = int.Parse(existLast.ma_phieu.Substring(8, existLast.ma_phieu.Length - 8)) + 1; var yearOld = int.Parse(existLast.ma_phieu.Substring(2, 2)); if (yearOld == yearNow) { ma_phieu = loai + yyMMdd + String.Format("{0:00000}", nextNo); } else { ma_phieu = loai + yyMMdd + "00001"; } } else { ma_phieu = loai + yyMMdd + "00001"; } data.ma_phieu = ma_phieu; //data.ngay_tao_yeu_cau = !string.IsNullOrEmpty(Request["ngay_tao_yeu_cau"]) ? DateTime.Parse(DateTime.ParseExact(Request["ngay_tao_yeu_cau"], "dd/MM/yyyy", CultureInfo.InvariantCulture).ToString("yyyy-MM-dd")) : DateTime.Parse("1900-01-01"); //data.ngay_cap_thiet_bi = !string.IsNullOrEmpty(Request["ngay_cap_thiet_bi"]) ? DateTime.Parse(DateTime.ParseExact(Request["ngay_cap_thiet_bi"], "dd/MM/yyyy", CultureInfo.InvariantCulture).ToString("yyyy-MM-dd")) : DateTime.Parse("1900-01-01"); //data.ten_phieu = data.ma_phieu; data.ngay_tao = DateTime.Now; data.nguoi_tao = currentUser.ma_nguoi_dung; data.ngay_cap_nhat = DateTime.Parse("1900-01-01"); data.nguoi_cap_nhat = ""; data.trang_thai = "MOI"; dbConn.Insert(data); id = (int)dbConn.GetLastInsertId(); foreach (var item in details) { PODetail newdata = new PODetail(); newdata.ma_phieu_header = data.ma_phieu; newdata.ma_san_pham = item.ma_san_pham; newdata.so_luong = item.so_luong; newdata.thong_so_ky_thuat = item.thong_so_ky_thuat; newdata.muc_dich_su_dung = ""; newdata.nguoi_tao = currentUser.ma_nguoi_dung; newdata.ma_to_trinh = item.ma_to_trinh; newdata.id_StatementDetail = item.id_StatementDetail; newdata.don_gia_vat = item.don_gia_vat; newdata.don_gia = item.don_gia; newdata.thue_vat = item.thue_vat; newdata.don_vi_tinh = item.don_vi_tinh; newdata.chi_phi = item.chi_phi; newdata.ma_don_vi = item.ma_don_vi; newdata.ma_chi_nhanh = item.ma_chi_nhanh; newdata.thong_tin_noi_bo = item.thong_tin_noi_bo; newdata.ngay_tao = DateTime.Now; newdata.ngay_cap_nhat = DateTime.Parse("1900-01-01"); newdata.nguoi_cap_nhat = ""; newdata.trang_thai = ""; dbConn.Insert <PODetail>(newdata); StatementDetail detail = dbConn.FirstOrDefault <StatementDetail>(s => s.id == item.id_StatementDetail); detail.ma_don_dat_hang = ma_phieu; dbConn.Update(detail); } } else { return(Json(new { success = false, error = "Bạn không có quyền thêm dữ liệu" })); } return(Json(new { success = true, id = id })); } catch (Exception ex) { return(Json(new { success = false, error = ex.Message })); } } }
private void btnUpdate_Click(object sender, EventArgs e) { Statement statement = new Statement(); statement.writeDate = "20150312"; //필수, 기재상 작성일자 (yyyyMMdd) statement.purposeType = "영수"; //필수, {영수, 청구} statement.taxType = "과세"; //필수, {과세, 영세, 면세} statement.formCode = txtFormCode.Text; //맞춤양식코드, 기본값을 공백('')으로 처리하면 기본양식으로 처리. statement.itemCode = selectedItemCode(); //명세서코드 statement.mgtKey = txtMgtKey.Text; //문서관리번호 statement.senderCorpNum = txtCorpNum.Text; statement.senderTaxRegID = ""; //종사업자 식별번호. 필요시 기재. 형식은 숫자 4자리. statement.senderCorpName = "공급자 상호_수정"; statement.senderCEOName = "공급자 대표자 성명_수정"; statement.senderAddr = "공급자 주소"; statement.senderBizClass = "공급자 업종"; statement.senderBizType = "공급자 업태,업태2"; statement.senderContactName = "공급자 담당자명"; statement.senderEmail = "*****@*****.**"; statement.senderTEL = "070-7070-0707"; statement.senderHP = "010-000-2222"; statement.receiverCorpNum = "8888888888"; statement.receiverCorpName = "공급받는자 상호"; statement.receiverCEOName = "공급받는자 대표자 성명"; statement.receiverAddr = "공급받는자 주소"; statement.receiverBizClass = "공급받는자 업종"; statement.receiverBizType = "공급받는자 업태"; statement.receiverContactName = "공급받는자 담당자명"; statement.receiverEmail = "*****@*****.**"; statement.supplyCostTotal = "200000"; //필수 공급가액 합계 statement.taxTotal = "20000"; //필수 세액 합계 statement.totalAmount = "220000"; //필수 합계금액. 공급가액 + 세액 statement.serialNum = "123"; //기재상 일련번호 항목 statement.remark1 = "비고1"; statement.remark2 = "비고2"; statement.remark3 = "비고3"; statement.businessLicenseYN = false; //사업자등록증 이미지 첨부시 설정. statement.bankBookYN = false; //통장사본 이미지 첨부시 설정. statement.detailList = new List <StatementDetail>(); StatementDetail detail = new StatementDetail(); detail.serialNum = 1; //일련번호, 1~99까지 순차기재 detail.purchaseDT = "20150309"; //거래일자 detail.itemName = "품목명"; detail.spec = "규격"; detail.qty = "1"; //수량 detail.unitCost = "100000"; //단가 detail.supplyCost = "100000"; //공급가액 detail.tax = "10000"; //세액 detail.remark = "품목비고"; detail.spare1 = "spare1"; detail.spare1 = "spare2"; detail.spare1 = "spare3"; detail.spare1 = "spare4"; detail.spare1 = "spare5"; statement.detailList.Add(detail); detail = new StatementDetail(); detail.serialNum = 2; //일련번호, 1~99까지 순차기재 detail.purchaseDT = "20150309"; //거래일자 detail.itemName = "품목명"; detail.spec = "규격"; detail.qty = "1"; //수량 detail.unitCost = "100000"; //단가 detail.supplyCost = "100000"; //공급가액 detail.tax = "10000"; //세액 detail.remark = "품목비고"; detail.spare1 = "spare1"; detail.spare1 = "spare2"; detail.spare1 = "spare3"; detail.spare1 = "spare4"; detail.spare1 = "spare5"; statement.detailList.Add(detail); statement.propertyBag = new Dictionary <string, string>(); statement.propertyBag.Add("Balance", "15000"); try { Response response = statementService.Update(txtCorpNum.Text, selectedItemCode(), txtMgtKey.Text, statement, txtUserID.Text); MessageBox.Show(response.code + " | " + response.message); } catch (PopbillException ex) { MessageBox.Show(ex.code.ToString() + " | " + ex.Message); } }
protected void Page_Load(object sender, EventArgs e) { /** * "임시저장" 상태의 전자명세서를 수정합니다. * - https://docs.popbill.com/statement/dotnet/api#Update */ // 팝빌회원 사업자번호, '-' 제외 10자리 String testCorpNum = "1234567890"; // 팝빌회원 아이디 String testUserID = "testkorea"; // 맞춤양식코드, 미기재시 기본양식으로 처리 String formCode = ""; // 명세서 코드 - 121(거래명세서), 122(청구서), 123(견적서), 124(발주서), 125(입금표), 126(영수증) int itemCode = 121; // 전자명세서 문서번호 String mgtKey = "20220525-002"; // 전자명세서 객체 Statement statement = new Statement(); // 기재상 작성일자 날짜형식(yyyyMMdd) statement.writeDate = "20220525"; // {영수, 청구, 없음} 중 기재 statement.purposeType = "영수"; // 과세형태, {과세, 영세, 면세} 중 기재 statement.taxType = "과세"; // 맞춤양식코드, 기본값을 공백('')으로 처리하면 기본양식으로 처리. statement.formCode = formCode; // 명세서 코드 statement.itemCode = itemCode; // 문서번호, 최대 24자리, 영문, 숫자 '-', '_'를 조합하여 사업자별로 중복되지 않도록 구성 statement.mgtKey = mgtKey; /************************************************************************** * 발신자 정보 * **************************************************************************/ // 발신자 사업자번호 statement.senderCorpNum = testCorpNum; // 종사업장 식별번호. 필요시 기재. 형식은 숫자 4자리. statement.senderTaxRegID = ""; // 발신자 상호 statement.senderCorpName = "발신자 상호_수정"; // 발신자 대표자 성명 statement.senderCEOName = "발신자 대표자 성명_수정"; // 발신자 주소 statement.senderAddr = "발신자 주소"; // 발신자 종목 statement.senderBizClass = "발신자 종목"; // 발신자 업태 statement.senderBizType = "발신자 업태,업태2"; // 발신자 담당자 성명 statement.senderContactName = "발신자 담당자명"; // 발신자 메일주소 statement.senderEmail = ""; // 발신자 연락처 statement.senderTEL = ""; // 발신자 휴대폰번호 statement.senderHP = ""; /************************************************************************** * 수신자 정보 * **************************************************************************/ // 수신자 사업자번호 statement.receiverCorpNum = "8888888888"; // 수신자 상호 statement.receiverCorpName = "수신자 상호"; // 수신자 대표자 성명 statement.receiverCEOName = "수신자 대표자 성명"; // 수신자 주소 statement.receiverAddr = "수신자 주소"; // 수신자 종목 statement.receiverBizClass = "수신자 종목"; // 수신자 업태 statement.receiverBizType = "수신자 업태"; // 수신자 담당자 성명 statement.receiverContactName = "수신자 담당자명"; // 수신자 메일주소 // 팝빌 개발환경에서 테스트하는 경우에도 안내 메일이 전송되므로, // 실제 거래처의 메일주소가 기재되지 않도록 주의 statement.receiverEmail = ""; /************************************************************************** * 전자명세서 기재항목 * **************************************************************************/ // 공급가액 합계 statement.supplyCostTotal = "200000"; // 세액 합계 statement.taxTotal = "20000"; // 합계금액 statement.totalAmount = "220000"; // 기재상 일련번호 항목 statement.serialNum = "123"; // 기재상 비고 항목 statement.remark1 = "비고1"; statement.remark2 = "비고2"; statement.remark3 = "비고3"; // 사업자등록증 이미지 첨부여부 (true / false 중 택 1) // └ true = 첨부 , false = 미첨부(기본값) // - 팝빌 사이트 또는 인감 및 첨부문서 등록 팝업 URL (GetSealURL API) 함수를 이용하여 등록 statement.businessLicenseYN = false; // 통장사본 이미지 첨부여부 (true / false 중 택 1) // └ true = 첨부 , false = 미첨부(기본값) // - 팝빌 사이트 또는 인감 및 첨부문서 등록 팝업 URL (GetSealURL API) 함수를 이용하여 등록 statement.bankBookYN = false; statement.detailList = new List <StatementDetail>(); StatementDetail detail = new StatementDetail(); detail.serialNum = 1; // 일련번호, 1부터 순차기재, 최대 99 detail.purchaseDT = "20220525"; // 거래일자 detail.itemName = "품목명"; // 품목명 detail.spec = "규격"; // 규격 detail.qty = "1"; // 수량 detail.unitCost = "100000"; // 단가 detail.supplyCost = "100000"; // 공급가액 detail.tax = "10000"; // 세액 detail.remark = "품목비고"; // 비고 detail.spare1 = "spare1"; //여분1 detail.spare1 = "spare2"; //여분2 detail.spare1 = "spare3"; //여분3 detail.spare1 = "spare4"; //여분4 detail.spare1 = "spare5"; //여분5 statement.detailList.Add(detail); detail = new StatementDetail(); detail.serialNum = 2; // 일련번호, 1부터 순차기재, 최대 99 detail.purchaseDT = "20220525"; // 거래일자 detail.itemName = "품목명"; // 품목명 detail.spec = "규격"; // 규격 detail.qty = "1"; // 수량 detail.unitCost = "100000"; // 단가 detail.supplyCost = "100000"; // 공급가액 detail.tax = "10000"; // 세액 detail.remark = "품목비고"; // 비고 detail.spare1 = "spare1"; //여분1 detail.spare1 = "spare2"; //여분2 detail.spare1 = "spare3"; //여분3 detail.spare1 = "spare4"; //여분4 detail.spare1 = "spare5"; //여분5 statement.detailList.Add(detail); /************************************************************ * 전자명세서 추가속성 * - 추가속성에 관한 자세한 사항은 "[전자명세서 API 연동매뉴얼] > * 5.2. 기본양식 추가속성 테이블"을 참조하시기 바랍니다. * - https://docs.popbill.com/statement/propertyBag?lang=dotnet ************************************************************/ statement.propertyBag = new propertyBag(); statement.propertyBag.Add("Balance", "15000"); // 전잔액 statement.propertyBag.Add("Deposit", "5000"); // 입금액 statement.propertyBag.Add("CBalance", "20000"); // 현잔액 try { Response response = Global.statementService.Update(testCorpNum, itemCode, mgtKey, statement, testUserID); code = response.code.ToString(); message = response.message; } catch (PopbillException ex) { code = ex.code.ToString(); message = ex.Message; } }